{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "1.jena_climate.ipynb",
      "provenance": [],
      "collapsed_sections": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "id": "1Z_qtACv7yK9",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "outputId": "dcbc3728-4794-4fbb-c9d1-f581d6f29781"
      },
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
            "\n",
            "Enter your authorization code:\n",
            "··········\n",
            "Mounted at /content/drive\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "W1R7L4jgsKAT",
        "colab_type": "text"
      },
      "source": [
        "# New Section"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0ELWa7T3GOIe",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 208
        },
        "outputId": "810a556d-8b37-489e-a554-59d45041487f"
      },
      "source": [
        "import os\n",
        "os.listdir(\"/content/drive/My Drive/ML and AI/Datasets\") # datasets save in my google drive"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['cat vs dog',\n",
              " 'compresive_strength_concrete',\n",
              " 'Mnist_fashion_dataset',\n",
              " 'Boston Housing dataset',\n",
              " 'sonar dataset',\n",
              " 'Iris dataset',\n",
              " 'diabetes dataset',\n",
              " 'bbc dataset',\n",
              " 'IMDB dataset',\n",
              " 'jena_climate',\n",
              " 'Amazon_Reviews']"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 2
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ockIhaQ8BXOr",
        "colab_type": "text"
      },
      "source": [
        "Dr Noman Islam Video Lecture link :\n",
        "\n",
        "https://www.youtube.com/watch?v=-neSx9_5f6w&list=PLkvOxJFQW9RHc90a0atm9Ubxi7cZcNA9C&index=24"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "85quDKeBBf_J",
        "colab_type": "text"
      },
      "source": [
        "# Advanced use of recurrent neural networks\n",
        "We’ll cover the following techniques:\n",
        "\n",
        " Recurrent dropout—This is a specific, built-in way to use dropout to fight overfitting in recurrent layers.\n",
        "\n",
        " Stacking recurrent layers—This increases the representational power of the network (at the cost of higher computational loads).\n",
        "\n",
        " Bidirectional recurrent layers—These present the same information to a recurrent\n",
        "network in different ways, increasing accuracy and mitigating forgetting issues"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OSnDCbbNBj5w",
        "colab_type": "text"
      },
      "source": [
        "# Download Weather data\n",
        "https://s3.amazonaws.com/keras-datasets/jena_climate_2009_2016.csv.zip\n",
        "    \n",
        "Until now we did language processing (IMDB) But sequence data is found in many more problems.\n",
        "\n",
        "jena_climate is a dataset,that were recorded every 10 minutes 2009–2016 in this case."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rXjfcf_4z4kq",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 89
        },
        "outputId": "b01731fb-9ec0-40aa-c2e7-b025f0c7f3d5"
      },
      "source": [
        "# This cell is of book code\n",
        "# This can be done easily with less code\n",
        "# as i did in cell below \n",
        "\n",
        "import os\n",
        "\n",
        "data_dir = 'jena_climate'\n",
        "fname = os.path.join(data_dir, '/content/drive/My Drive/ML and AI/Datasets/jena_climate/jena_climate_2009_2016.csv')\n",
        "\n",
        "f = open(fname)\n",
        "data = f.read()\n",
        "f.close()\n",
        "\n",
        "lines = data.split('\\n')\n",
        "header = lines[0].split(',')\n",
        "lines = lines[1:]\n",
        "\n",
        "print(header)\n",
        "print()\n",
        "print(\"Length of dataset :\",len(lines))\n",
        "\n",
        "# Now, convert all 420,551 lines of data into a Numpy array\n",
        "\n",
        "import numpy as np\n",
        "float_data = np.zeros((len(lines), len(header) - 1))\n",
        "for i, line in enumerate(lines):\n",
        "    values = [float(x) for x in line.split(',')[1:]]\n",
        "    float_data[i, :] = values"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "['\"Date Time\"', '\"p (mbar)\"', '\"T (degC)\"', '\"Tpot (K)\"', '\"Tdew (degC)\"', '\"rh (%)\"', '\"VPmax (mbar)\"', '\"VPact (mbar)\"', '\"VPdef (mbar)\"', '\"sh (g/kg)\"', '\"H2OC (mmol/mol)\"', '\"rho (g/m**3)\"', '\"wv (m/s)\"', '\"max. wv (m/s)\"', '\"wd (deg)\"']\n",
            "\n",
            "Length of dataset : 420551\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "q_ULt5pF8WOW",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 345
        },
        "outputId": "772efa14-9259-421a-d2e6-c5697182a7fb"
      },
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "\n",
        "df = pd.read_csv(\"/content/drive/My Drive/ML and AI/Datasets/jena_climate/jena_climate_2009_2016.csv\")\n",
        "print(\"Length of dataset :\",len(df))\n",
        "print()\n",
        "display(df.head())\n",
        "values = df.iloc[:,1:] # excluded date\n",
        "float_data = np.asarray(values) # converting in numpy array"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Length of dataset : 420551\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date Time</th>\n",
              "      <th>p (mbar)</th>\n",
              "      <th>T (degC)</th>\n",
              "      <th>Tpot (K)</th>\n",
              "      <th>Tdew (degC)</th>\n",
              "      <th>rh (%)</th>\n",
              "      <th>VPmax (mbar)</th>\n",
              "      <th>VPact (mbar)</th>\n",
              "      <th>VPdef (mbar)</th>\n",
              "      <th>sh (g/kg)</th>\n",
              "      <th>H2OC (mmol/mol)</th>\n",
              "      <th>rho (g/m**3)</th>\n",
              "      <th>wv (m/s)</th>\n",
              "      <th>max. wv (m/s)</th>\n",
              "      <th>wd (deg)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>01.01.2009 00:10:00</td>\n",
              "      <td>996.52</td>\n",
              "      <td>-8.02</td>\n",
              "      <td>265.40</td>\n",
              "      <td>-8.90</td>\n",
              "      <td>93.3</td>\n",
              "      <td>3.33</td>\n",
              "      <td>3.11</td>\n",
              "      <td>0.22</td>\n",
              "      <td>1.94</td>\n",
              "      <td>3.12</td>\n",
              "      <td>1307.75</td>\n",
              "      <td>1.03</td>\n",
              "      <td>1.75</td>\n",
              "      <td>152.3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>01.01.2009 00:20:00</td>\n",
              "      <td>996.57</td>\n",
              "      <td>-8.41</td>\n",
              "      <td>265.01</td>\n",
              "      <td>-9.28</td>\n",
              "      <td>93.4</td>\n",
              "      <td>3.23</td>\n",
              "      <td>3.02</td>\n",
              "      <td>0.21</td>\n",
              "      <td>1.89</td>\n",
              "      <td>3.03</td>\n",
              "      <td>1309.80</td>\n",
              "      <td>0.72</td>\n",
              "      <td>1.50</td>\n",
              "      <td>136.1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>01.01.2009 00:30:00</td>\n",
              "      <td>996.53</td>\n",
              "      <td>-8.51</td>\n",
              "      <td>264.91</td>\n",
              "      <td>-9.31</td>\n",
              "      <td>93.9</td>\n",
              "      <td>3.21</td>\n",
              "      <td>3.01</td>\n",
              "      <td>0.20</td>\n",
              "      <td>1.88</td>\n",
              "      <td>3.02</td>\n",
              "      <td>1310.24</td>\n",
              "      <td>0.19</td>\n",
              "      <td>0.63</td>\n",
              "      <td>171.6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>01.01.2009 00:40:00</td>\n",
              "      <td>996.51</td>\n",
              "      <td>-8.31</td>\n",
              "      <td>265.12</td>\n",
              "      <td>-9.07</td>\n",
              "      <td>94.2</td>\n",
              "      <td>3.26</td>\n",
              "      <td>3.07</td>\n",
              "      <td>0.19</td>\n",
              "      <td>1.92</td>\n",
              "      <td>3.08</td>\n",
              "      <td>1309.19</td>\n",
              "      <td>0.34</td>\n",
              "      <td>0.50</td>\n",
              "      <td>198.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>01.01.2009 00:50:00</td>\n",
              "      <td>996.51</td>\n",
              "      <td>-8.27</td>\n",
              "      <td>265.15</td>\n",
              "      <td>-9.04</td>\n",
              "      <td>94.1</td>\n",
              "      <td>3.27</td>\n",
              "      <td>3.08</td>\n",
              "      <td>0.19</td>\n",
              "      <td>1.92</td>\n",
              "      <td>3.09</td>\n",
              "      <td>1309.00</td>\n",
              "      <td>0.32</td>\n",
              "      <td>0.63</td>\n",
              "      <td>214.3</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "             Date Time  p (mbar)  T (degC)  ...  wv (m/s)  max. wv (m/s)  wd (deg)\n",
              "0  01.01.2009 00:10:00    996.52     -8.02  ...      1.03           1.75     152.3\n",
              "1  01.01.2009 00:20:00    996.57     -8.41  ...      0.72           1.50     136.1\n",
              "2  01.01.2009 00:30:00    996.53     -8.51  ...      0.19           0.63     171.6\n",
              "3  01.01.2009 00:40:00    996.51     -8.31  ...      0.34           0.50     198.0\n",
              "4  01.01.2009 00:50:00    996.51     -8.27  ...      0.32           0.63     214.3\n",
              "\n",
              "[5 rows x 15 columns]"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "M939-3QmBy1I",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 243
        },
        "outputId": "4c168f57-9ce6-41ae-b130-527fdd9dd490"
      },
      "source": [
        "float_data"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[ 9.9652e+02, -8.0200e+00,  2.6540e+02, ...,  1.0300e+00,\n",
              "         1.7500e+00,  1.5230e+02],\n",
              "       [ 9.9657e+02, -8.4100e+00,  2.6501e+02, ...,  7.2000e-01,\n",
              "         1.5000e+00,  1.3610e+02],\n",
              "       [ 9.9653e+02, -8.5100e+00,  2.6491e+02, ...,  1.9000e-01,\n",
              "         6.3000e-01,  1.7160e+02],\n",
              "       ...,\n",
              "       [ 9.9982e+02, -3.1600e+00,  2.7001e+02, ...,  1.0800e+00,\n",
              "         2.0000e+00,  2.1520e+02],\n",
              "       [ 9.9981e+02, -4.2300e+00,  2.6894e+02, ...,  1.4900e+00,\n",
              "         2.1600e+00,  2.2580e+02],\n",
              "       [ 9.9982e+02, -4.8200e+00,  2.6836e+02, ...,  1.2300e+00,\n",
              "         1.9600e+00,  1.8490e+02]])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7BWVIuT-CBf7",
        "colab_type": "text"
      },
      "source": [
        "# Plotting the temperature timeseries\n",
        "For instance, here is the plot of temperature (in degrees Celsius) over time. On this plot, you can clearly see the yearly periodicity of temperature."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "t4X7GAfeB8TL",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "20312598-e2e7-4119-cf52-2c23a0d6eb9a"
      },
      "source": [
        "from matplotlib import pyplot as plt\n",
        "temp = float_data[:, 1] #<1> temperature (in degrees Celsius)\n",
        "plt.plot(range(len(temp)), temp)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f6beb9d10b8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "a05saUoaCHx3",
        "colab_type": "text"
      },
      "source": [
        "# Plotting the first 10 days of the temperature timeseries\n",
        "Here is a more narrow plot of the first 10 days of temperature data.\n",
        "Because the data is recorded every 10 minutes, you get 144 data points per day."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "XEr-mBbUCDzz",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "c2aa932a-17a5-4b50-a2a5-f25ccc19517e"
      },
      "source": [
        "plt.plot(range(1440), temp[:1440])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f548b402908>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lLUwZJFsCLP4",
        "colab_type": "text"
      },
      "source": [
        "# Normalizing the data\n",
        "We are going to use the first 200,000 timesteps as training data"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "R4ZXPPqbCKKJ",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "mean = float_data[:200000].mean(axis=0)\n",
        "float_data -= mean\n",
        "std = float_data[:200000].std(axis=0)\n",
        "float_data /= std"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WtPs0Gyg8I7A",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "bef1f568-1f9f-40b5-9965-7d653b65a057"
      },
      "source": [
        "# PLOT ranges of float_data from VALIDATION range\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "Ulim = 202000\n",
        "Llim = 200000\n",
        "SamSize = Ulim - Llim\n",
        "\n",
        "plt.plot(range(SamSize), temp[Llim:Ulim], 'r')\n",
        "#plt.plot(range(SamSize), pBar[Llim:Ulim], 'g')\n",
        "#plt.plot(range(SamSize), rh[Llim:Ulim], 'b')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f6bef40c7b8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 13
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KMdo-ZA8CQmv",
        "colab_type": "text"
      },
      "source": [
        "# Generator yielding timeseries samples and their targets\n",
        "The data generator you’ll use. It yields a tuple (samples, targets),\n",
        "where samples is one batch of input data and targets is the corresponding array of\n",
        "target temperatures. It takes the following arguments:\n",
        "\n",
        "data—The original array of floating-point data, which you normalized.\n",
        "\n",
        " lookback—How many timesteps back the input data should go.\n",
        "\n",
        " delay—How many timesteps in the future the target should be.\n",
        "\n",
        " min_index and max_index—Indices in the data array that delimit which timesteps to draw from. This is useful for keeping a segment of the data for validation and another for testing.\n",
        "\n",
        " shuffle—Whether to shuffle the samples or draw them in chronological order.\n",
        "\n",
        " batch_size—The number of samples per batch.\n",
        "\n",
        " step—The period, in timesteps, at which you sample data. You’ll set it to 6 in\n",
        "order to draw one data point every hour."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sh_OqtracmrQ",
        "colab_type": "text"
      },
      "source": [
        ""
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4P8uNzeKCOyv",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def generator(data, lookback, delay, min_index, max_index,shuffle=False, batch_size=128, step=6):\n",
        "    if max_index is None: #If max index is not specified, we will set it to very end of the data\n",
        "        max_index = len(data) - delay - 1 # 1 step peche kharehoke agay ka data pridict kara sakte hai\n",
        "    i = min_index + lookback # 0 se start nahe kersakte lookback kerna hai to utna agay se stat kerna parega\n",
        "    while 1:\n",
        "        if shuffle: \n",
        "            #Generate random rows\n",
        "            rows = np.random.randint(min_index + lookback, max_index, size=batch_size)\n",
        "        else:\n",
        "            if i + batch_size >= max_index: \n",
        "                i = min_index + lookback    # ager data khatam ho raha ho to yeah set kerdo\n",
        "            rows = np.arange(i, min(i + batch_size, max_index))\n",
        "            i += len(rows) # \n",
        "        samples = np.zeros((len(rows),lookback // step,data.shape[-1])) # past data\n",
        "        targets = np.zeros((len(rows),))\n",
        "        for j, row in enumerate(rows):\n",
        "            indices = range(rows[j] - lookback, rows[j], step)\n",
        "            samples[j] = data[indices]\n",
        "            targets[j] = data[rows[j] + delay][1]\n",
        "        yield samples, targets # sample pe lookback aur target mai delay ka bht sara data hai"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TF4qPKQwCV94",
        "colab_type": "text"
      },
      "source": [
        "# Preparing the training, validation, and test generators\n",
        "Now, let’s use the abstract generator function to instantiate three generators: one for\n",
        "training, one for validation, and one for testing. Each will look at different temporal\n",
        "segments of the original data:\n",
        "\n",
        "the training generator looks at the first 200,000 timesteps,\n",
        "\n",
        "the validation generator looks at the following 100,000,and\n",
        "\n",
        "the test generator looks at the remainder."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2I5oNdIFCS0w",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "lookback = 1440   # 1440/6 = 240(samples) kitna past data dekhna hai\n",
        "step = 6          # 10 min bt ka data hai, 6 step matlab 60 min(1 hour) ke bt ka data lo\n",
        "delay = 144\n",
        "batch_size = 128  # kitne line uthane hai\n",
        "\n",
        "train_gen = generator(float_data,\n",
        "                        lookback=lookback,\n",
        "                        delay=delay,\n",
        "                        min_index=0,\n",
        "                        max_index=200000,\n",
        "                        shuffle=True,\n",
        "                        step=step,\n",
        "                        batch_size=batch_size)\n",
        "\n",
        "val_gen = generator(float_data,\n",
        "                    lookback=lookback,\n",
        "                    delay=delay,\n",
        "                    min_index=200001,\n",
        "                    max_index=300000,\n",
        "                    step=step,\n",
        "                    batch_size=batch_size)\n",
        "\n",
        "test_gen = generator(float_data,\n",
        "                    lookback=lookback,\n",
        "                    delay=delay,\n",
        "                    min_index=300001,\n",
        "                    max_index=None,\n",
        "                    step=step,\n",
        "                    batch_size=batch_size)\n",
        "\n",
        "val_steps = (300000 - 200001 - lookback) // batch_size # in book code batch size was not divided\n",
        "# How many steps to draw from val_gen in order to see the entire validation set\n",
        "\n",
        "test_steps = (len(float_data) - 300001 - lookback) // batch_size # in book code batch size was not divided\n",
        "# How many steps to draw from test_gen in order to see the entire test set "
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "m1Bo_WJ7CVI-",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "################# Data is ready ######################"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c9mM8PaAhKJ8",
        "colab_type": "text"
      },
      "source": [
        "#A common-sense, non-machine-learning baseline\n",
        "Before you start using black-box deep-learning models to solve the temperature-\n",
        "prediction problem, let’s try a simple, common-sense approach."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yYAzacjNg1jM",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "f45e46c4-878a-41d5-c80f-df930fe76c45"
      },
      "source": [
        "def evaluate_naive_method():\n",
        "    batch_maes = []\n",
        "    for step in range(val_steps):\n",
        "        samples, targets = next(val_gen)\n",
        "        #print(samples.shape)\n",
        "        #print(targets.shape)\n",
        "        preds = samples[:,-1,1]\n",
        "        mae = np.mean(np.abs(preds - targets))\n",
        "        batch_maes.append(mae)\n",
        "    print(np.mean(batch_maes))\n",
        "evaluate_naive_method()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0.28973597299054815\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IJ2RPVzihdXo",
        "colab_type": "text"
      },
      "source": [
        "This yields an MAE of 0.29. Because the temperature data has been normalized to be\n",
        "centered on 0 and have a standard deviation of 1, this number isn’t immediately inter-\n",
        "pretable. It translates to an average absolute error of 0.29 × temperature_std degrees\n",
        "Celsius: 2.57 ̊C."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lk5CZXlvg1rA",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "43a9c8c3-a6f0-453f-8499-cfc2ad5d6e8f"
      },
      "source": [
        "celsius_mae = 0.3 * std[1]\n",
        "celsius_mae"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "2.65574972466139"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 13
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "x3NrnqA7I9-o",
        "colab_type": "text"
      },
      "source": [
        "You use MAE as the loss.\n",
        "Because you evaluate on the exact same data and with the exact same metric you did\n",
        "with the common-sense approach, the results will be directly comparable."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fDRpikOPMB6A",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "9404c55b-08ab-49ff-e856-73cba1ce7547"
      },
      "source": [
        "maeC = 0.28974\n",
        "Ulim = 202000\n",
        "Llim = 200000\n",
        "SampleSize = Ulim - Llim\n",
        "\n",
        "plt.plot(range(SampleSize), temp[Llim:Ulim], 'r')\n",
        "plt.plot(range(SampleSize), temp[Llim:Ulim]+maeC, 'b', linewidth=0.3)\n",
        "plt.plot(range(SampleSize), temp[Llim:Ulim]-maeC, 'b', linewidth=0.3)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f6bef388390>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 16
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Nhp3bXC5hj78",
        "colab_type": "text"
      },
      "source": [
        "# A basic machine-learning approach"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2nIz3gzQg1uI",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 260
        },
        "outputId": "9d60f064-3e68-4f3d-e824-f38f3505a07c"
      },
      "source": [
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras.layers import Flatten,Dense\n",
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model = Sequential()\n",
        "model.add(Flatten(input_shape=(lookback//step,float_data.shape[-1])))\n",
        "model.add(Dense(32, activation='relu'))\n",
        "model.add(Dense(1))\n",
        "\n",
        "model.compile(optimizer=RMSprop(),loss='mae')\n",
        "model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "flatten (Flatten)            (None, 3360)              0         \n",
            "_________________________________________________________________\n",
            "dense (Dense)                (None, 32)                107552    \n",
            "_________________________________________________________________\n",
            "dense_1 (Dense)              (None, 1)                 33        \n",
            "=================================================================\n",
            "Total params: 107,585\n",
            "Trainable params: 107,585\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oBo8w5mgg1vs",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 784
        },
        "outputId": "48081e9f-a07f-4b3f-e0dc-bb302b96890b"
      },
      "source": [
        "history = model.fit_generator(train_gen,\n",
        "                              steps_per_epoch=500, #500\n",
        "                              epochs=20,           #20\n",
        "                              validation_data=val_gen,\n",
        "                              validation_steps=val_steps)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:From <ipython-input-15-380c4945092a>:5: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Please use Model.fit, which supports generators.\n",
            "Epoch 1/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 1.1411 - val_loss: 0.5559\n",
            "Epoch 2/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.3971 - val_loss: 0.4205\n",
            "Epoch 3/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2914 - val_loss: 0.3167\n",
            "Epoch 4/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2666 - val_loss: 0.3767\n",
            "Epoch 5/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2533 - val_loss: 0.3210\n",
            "Epoch 6/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2432 - val_loss: 0.3190\n",
            "Epoch 7/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2407 - val_loss: 0.3147\n",
            "Epoch 8/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2332 - val_loss: 0.3187\n",
            "Epoch 9/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2286 - val_loss: 0.3101\n",
            "Epoch 10/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2250 - val_loss: 0.3432\n",
            "Epoch 11/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2207 - val_loss: 0.3222\n",
            "Epoch 12/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2167 - val_loss: 0.3244\n",
            "Epoch 13/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2152 - val_loss: 0.3500\n",
            "Epoch 14/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2121 - val_loss: 0.3335\n",
            "Epoch 15/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2107 - val_loss: 0.3360\n",
            "Epoch 16/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2097 - val_loss: 0.3351\n",
            "Epoch 17/20\n",
            "500/500 [==============================] - 11s 22ms/step - loss: 0.2073 - val_loss: 0.3347\n",
            "Epoch 18/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2058 - val_loss: 0.3337\n",
            "Epoch 19/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2038 - val_loss: 0.3416\n",
            "Epoch 20/20\n",
            "500/500 [==============================] - 11s 21ms/step - loss: 0.2011 - val_loss: 0.3268\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DyZsp_xLg1y0",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 281
        },
        "outputId": "98f52d95-051e-4086-c209-dc8b1228309c"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "loss = history.history['loss']\n",
        "val_loss = history.history['val_loss']\n",
        "epochs = range(1, len(loss) + 1)\n",
        "plt.figure()\n",
        "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
        "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
        "plt.title('Training and validation loss')\n",
        "plt.legend()\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEICAYAAABPgw/pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZgU5bn+8e/DIiMCKosb22CiuMIMDJuoATUR0IDiEgkRkeMCcddoUFyIhlw/oyfHeEQN7ssoemLCwYgHV4JLVBYRZYuIoKOIiMoiiyDP74+3BpphuqeH6emeqbk/19VXd9f6dE3PXVVvVVeZuyMiIrVfvVwXICIimaFAFxGJCQW6iEhMKNBFRGJCgS4iEhMKdBGRmFCgS7nM7HkzOyfTw+aSmS01sxOqYbpuZj+OXt9rZjekM+wuzGeomb2wq3WmmG4fMyvJ9HQl+xrkugDJHDNbl/C2MbAJ+CF6f6G7F6c7LXfvXx3Dxp27j8zEdMwsH/gYaOjuW6JpFwNp/w2l7lGgx4i7Nyl9bWZLgfPc/aWyw5lZg9KQEJH4UJNLHVC6S21mvzWzL4CHzGxvM/uHma00s2+i120SxplmZudFr4eb2etmdns07Mdm1n8Xh+1gZtPNbK2ZvWRm483s8SR1p1PjLWb2RjS9F8ysZUL/s81smZmtMrMxKZZPDzP7wszqJ3Q71czmRq+7m9m/zOxbM1tuZneZ2W5JpvWwmf0+4f3V0Tifm9mIMsOeZGbvmtkaM/vUzMYm9J4ePX9rZuvMrFfpsk0Y/ygzm2Fmq6Pno9JdNqmY2aHR+N+a2TwzG5jQb4CZzY+m+ZmZ/Sbq3jL6+3xrZl+b2WtmpnzJMi3wumM/oDnQHriA8Ld/KHrfDtgA3JVi/B7AIqAl8EfgATOzXRj2CeAdoAUwFjg7xTzTqfGXwLnAPsBuQGnAHAbcE03/gGh+bSiHu78NfAccV2a6T0SvfwCuiD5PL+B44Ncp6iaqoV9Uz0+Bg4Cy7fffAcOAvYCTgFFmdkrU79joeS93b+Lu/yoz7ebAc8Cd0Wf7E/CcmbUo8xl2WjYV1NwQeBZ4IRrvEqDYzDpGgzxAaL5rChwBvBJ1vwooAVoB+wLXAbquSJYp0OuOrcBN7r7J3Te4+yp3f8bd17v7WmAc8JMU4y9z9/vc/QfgEWB/wj9u2sOaWTugG3Cju3/v7q8Dk5PNMM0aH3L3f7v7BuBpoCDqfjrwD3ef7u6bgBuiZZDMk8AQADNrCgyIuuHus9z9LXff4u5Lgb+UU0d5zozq+8DdvyOswBI/3zR3f9/dt7r73Gh+6UwXwgrgQ3d/LKrrSWAh8POEYZItm1R6Ak2A/xf9jV4B/kG0bIDNwGFm1szdv3H32Qnd9wfau/tmd3/NdaGorFOg1x0r3X1j6Rsza2xmf4maJNYQdvH3Smx2KOOL0hfuvj562aSSwx4AfJ3QDeDTZAWnWeMXCa/XJ9R0QOK0o0BdlWxehK3xwWbWCBgMzHb3ZVEdB0fNCV9EdfyBsLVekR1qAJaV+Xw9zOzVqElpNTAyzemWTntZmW7LgNYJ75MtmwprdvfElV/idE8jrOyWmdk/zaxX1P02YDHwgpktMbPR6X0MySQFet1RdmvpKqAj0MPdm7F9Fz9ZM0omLAeam1njhG5tUwxflRqXJ047mmeLZAO7+3xCcPVnx+YWCE03C4GDojqu25UaCM1GiZ4g7KG0dfc9gXsTplvR1u3nhKaoRO2Az9Koq6Lpti3T/r1tuu4+w90HEZpjJhG2/HH3te5+lbsfCAwErjSz46tYi1SSAr3uakpok/42ao+9qbpnGG3xzgTGmtlu0dbdz1OMUpUa/wqcbGZHRwcwb6bi7/sTwGWEFcf/lKljDbDOzA4BRqVZw9PAcDM7LFqhlK2/KWGPZaOZdSesSEqtJDQRHZhk2lOAg83sl2bWwMx+ARxGaB6pircJW/PXmFlDM+tD+BtNjP5mQ81sT3ffTFgmWwHM7GQz+3F0rGQ14bhDqiYuqQYK9LrrDmB34CvgLeD/sjTfoYQDi6uA3wNPEc6XL88u1+ju84CLCCG9HPiGcNAuldI27Ffc/auE7r8hhO1a4L6o5nRqeD76DK8QmiNeKTPIr4GbzWwtcCPR1m407nrCMYM3ojNHepaZ9irgZMJezCrgGuDkMnVXmrt/Twjw/oTlfjcwzN0XRoOcDSyNmp5GEv6eEA76vgSsA/4F3O3ur1alFqk803ELySUzewpY6O7VvocgEnfaQpesMrNuZvYjM6sXndY3iNAWKyJVpF+KSrbtB/yNcICyBBjl7u/mtiSReFCTi4hITKjJRUQkJnLW5NKyZUvPz8/P1exFRGqlWbNmfeXurcrrl7NAz8/PZ+bMmbmavYhIrWRmZX8hvI2aXEREYkKBLiISEwp0EZGY0HnoInXI5s2bKSkpYePGjRUPLDmVl5dHmzZtaNiwYdrjKNBF6pCSkhKaNm1Kfn4+ye9PIrnm7qxatYqSkhI6dOiQ9ni1qsmluBjy86FevfBcrNvlilTKxo0badGihcK8hjMzWrRoUek9qVqzhV5cDBdcAOujWyMsWxbeAwwdmnw8EdmRwrx22JW/U63ZQh8zZnuYl1q/PnQXEZFaFOiffFK57iJS86xatYqCggIKCgrYb7/9aN269bb333//fcpxZ86cyaWXXlrhPI466qiM1Dpt2jROPvnkjEwrW2pNoLcre/OuCrqLSNVl+rhVixYtmDNnDnPmzGHkyJFcccUV297vtttubNmyJem4RUVF3HnnnRXO480336xakbVYrQn0ceOgceMduzVuHLqLSOaVHrdatgzctx+3yvTJCMOHD2fkyJH06NGDa665hnfeeYdevXpRWFjIUUcdxaJFi4Adt5jHjh3LiBEj6NOnDwceeOAOQd+kSZNtw/fp04fTTz+dQw45hKFDh1J6ddkpU6ZwyCGH0LVrVy699NIKt8S//vprTjnlFDp16kTPnj2ZO3cuAP/85z+37WEUFhaydu1ali9fzrHHHktBQQFHHHEEr732WmYXWAq15qBo6YHPMWNCM0u7diHMdUBUpHqkOm6V6f+7kpIS3nzzTerXr8+aNWt47bXXaNCgAS+99BLXXXcdzzzzzE7jLFy4kFdffZW1a9fSsWNHRo0atdM52++++y7z5s3jgAMOoHfv3rzxxhsUFRVx4YUXMn36dDp06MCQIUMqrO+mm26isLCQSZMm8corrzBs2DDmzJnD7bffzvjx4+nduzfr1q0jLy+PCRMmcOKJJzJmzBh++OEH1pddiNWo1gQ6hC+RAlwkO7J53OqMM86gfv36AKxevZpzzjmHDz/8EDNj8+bN5Y5z0kkn0ahRIxo1asQ+++zDihUraNOmzQ7DdO/efVu3goICli5dSpMmTTjwwAO3nd89ZMgQJkyYkLK+119/fdtK5bjjjmPVqlWsWbOG3r17c+WVVzJ06FAGDx5MmzZt6NatGyNGjGDz5s2ccsopFBQUVGnZVEataXIRkezK5nGrPfbYY9vrG264gb59+/LBBx/w7LPPJj0Xu1GjRtte169fv9z293SGqYrRo0dz//33s2HDBnr37s3ChQs59thjmT59Oq1bt2b48OE8+uijGZ1nKgp0ESlXro5brV69mtatWwPw8MMPZ3z6HTt2ZMmSJSxduhSAp556qsJxjjnmGIqjgwfTpk2jZcuWNGvWjI8++ogjjzyS3/72t3Tr1o2FCxeybNky9t13X84//3zOO+88Zs+enfHPkIwCXUTKNXQoTJgA7duDWXieMKH6mz2vueYarr32WgoLCzO+RQ2w++67c/fdd9OvXz+6du1K06ZN2XPPPVOOM3bsWGbNmkWnTp0YPXo0jzzyCAB33HEHRxxxBJ06daJhw4b079+fadOm0blzZwoLC3nqqae47LLLMv4ZksnZPUWLiopcN7gQya4FCxZw6KGH5rqMnFu3bh1NmjTB3bnooos46KCDuOKKK3Jd1k7K+3uZ2Sx3LypveG2hi0idc99991FQUMDhhx/O6tWrufDCC3NdUkbUqrNcREQy4YorrqiRW+RVpS10EZGYUKCLiMSEAl1EJCYU6CIiMaFAF5Gs6du3L1OnTt2h2x133MGoUaOSjtOnTx9KT3EeMGAA33777U7DjB07lttvvz3lvCdNmsT8+fO3vb/xxht56aWXKlN+uWrSZXYV6CKSNUOGDGHixIk7dJs4cWJaF8iCcJXEvfbaa5fmXTbQb775Zk444YRdmlZNpUAXkaw5/fTTee6557bdzGLp0qV8/vnnHHPMMYwaNYqioiIOP/xwbrrppnLHz8/P56uvvgJg3LhxHHzwwRx99NHbLrEL4Rzzbt260blzZ0477TTWr1/Pm2++yeTJk7n66qspKCjgo48+Yvjw4fz1r38F4OWXX6awsJAjjzySESNGsGnTpm3zu+mmm+jSpQtHHnkkCxcuTPn5cn2ZXZ2HLlJHXX45zJmT2WkWFMAddyTv37x5c7p3787zzz/PoEGDmDhxImeeeSZmxrhx42jevDk//PADxx9/PHPnzqVTp07lTmfWrFlMnDiROXPmsGXLFrp06ULXrl0BGDx4MOeffz4A119/PQ888ACXXHIJAwcO5OSTT+b000/fYVobN25k+PDhvPzyyxx88MEMGzaMe+65h8svvxyAli1bMnv2bO6++25uv/127r///qSfL9eX2dUWuohkVWKzS2Jzy9NPP02XLl0oLCxk3rx5OzSPlPXaa69x6qmn0rhxY5o1a8bAgQO39fvggw845phjOPLIIykuLmbevHkp61m0aBEdOnTg4IMPBuCcc85h+vTp2/oPHjwYgK5du267oFcyr7/+OmeffTZQ/mV277zzTr799lsaNGhAt27deOihhxg7dizvv/8+TZs2TTntdGgLXaSOSrUlXZ0GDRrEFVdcwezZs1m/fj1du3bl448/5vbbb2fGjBnsvffeDB8+POllcysyfPhwJk2aROfOnXn44YeZNm1aleotvQRvVS6/O3r0aE466SSmTJlC7969mTp16rbL7D733HMMHz6cK6+8kmHDhlWpVm2hi0hWNWnShL59+zJixIhtW+dr1qxhjz32YM8992TFihU8//zzKadx7LHHMmnSJDZs2MDatWt59tlnt/Vbu3Yt+++/P5s3b952yVuApk2bsnbt2p2m1bFjR5YuXcrixYsBeOyxx/jJT36yS58t15fZ1Ra6iGTdkCFDOPXUU7c1vZRebvaQQw6hbdu29O7dO+X4Xbp04Re/+AWdO3dmn332oVu3btv63XLLLfTo0YNWrVrRo0ePbSF+1llncf7553PnnXduOxgKkJeXx0MPPcQZZ5zBli1b6NatGyNHjtylz1V6r9NOnTrRuHHjHS6z++qrr1KvXj0OP/xw+vfvz8SJE7ntttto2LAhTZo0yciNMHT5XJE6RJfPrV10+VwRkTpKgS4iEhMKdJE6JlfNrFI5u/J3qjDQzexBM/vSzD5I0t/M7E4zW2xmc82sS6WrEJGsyMvLY9WqVQr1Gs7dWbVqFXl5eZUaL52zXB4G7gKSHYLtDxwUPXoA90TPIlLDtGnThpKSElauXJnrUqQCeXl5tGnTplLjVBjo7j7dzPJTDDIIeNTDKv8tM9vLzPZ39+WVqkREql3Dhg3p0KFDrsuQapKJNvTWwKcJ70uibjsxswvMbKaZzdQWgohIZmX1oKi7T3D3IncvatWqVTZnLSISe5kI9M+Atgnv20TdREQkizIR6JOBYdHZLj2B1Wo/FxHJvgoPiprZk0AfoKWZlQA3AQ0B3P1eYAowAFgMrAfOra5iRUQkuXTOckl5b6jo7JaLMlaRiIjsEv1SVEQkJhToIiIxoUAXEYkJBbqISEwo0EVEYkKBLiISEwp0EZGYUKCLiMSEAl1EJCYU6CIiMaFAFxGJCQW6iEhMKNBFRGJCgS4iEhMKdBGRmFCgi4jEhAJdRCQmFOgiIjGhQBcRiQkFuohITCjQRURiQoEuIhITCnQRkZhQoIuIxIQCXUQkJhToIiIxoUAXEYkJBbqISEwo0EVEYkKBLiISEwp0EZGYUKCLiMSEAl1EJCbSCnQz62dmi8xssZmNLqd/OzN71czeNbO5ZjYg86WKiEgqFQa6mdUHxgP9gcOAIWZ2WJnBrgeedvdC4Czg7kwXKiIiqaWzhd4dWOzuS9z9e2AiMKjMMA40i17vCXyeuRJFRCQd6QR6a+DThPclUbdEY4FfmVkJMAW4pLwJmdkFZjbTzGauXLlyF8oVEZFkMnVQdAjwsLu3AQYAj5nZTtN29wnuXuTuRa1atcrQrEVEBNIL9M+Atgnv20TdEv0H8DSAu/8LyANaZqJAERFJTzqBPgM4yMw6mNluhIOek8sM8wlwPICZHUoIdLWpiIhkUYWB7u5bgIuBqcACwtks88zsZjMbGA12FXC+mb0HPAkMd3evrqJFRGRnDdIZyN2nEA52Jna7MeH1fKB3ZksTEZHK0C9FRURiQoEuIhITCnQRkZhQoIuIxIQCXUQkJhToIiIxoUAXEYkJBbqISEwo0EVEYkKBLiISEwp0EZGYUKCLiMSEAl1EJCYU6CIiMaFAFxGJCQW6iEhMKNBFRGJCgS4iEhMKdBGRmFCgi4jEhAJdRCQmFOgiIjGhQBcRiQkFuohITCjQRURiQoEuIhITCnQRkZhQoIuIxIQCXUQkJhToIiIxoUAXEYkJBbqISEwo0EVEYiKtQDezfma2yMwWm9noJMOcaWbzzWyemT2R2TJFRKQiDSoawMzqA+OBnwIlwAwzm+zu8xOGOQi4Fujt7t+Y2T7VVbCIiJQvnS307sBid1/i7t8DE4FBZYY5Hxjv7t8AuPuXmS1TREQqkk6gtwY+TXhfEnVLdDBwsJm9YWZvmVm/8iZkZheY2Uwzm7ly5cpdq1hERMqVqYOiDYCDgD7AEOA+M9ur7EDuPsHdi9y9qFWrVhmatYiIQHqB/hnQNuF9m6hbohJgsrtvdvePgX8TAl5ERLIknUCfARxkZh3MbDfgLGBymWEmEbbOMbOWhCaYJRmsU0REKlBhoLv7FuBiYCqwAHja3eeZ2c1mNjAabCqwyszmA68CV7v7quoqWkREdmbunpMZFxUV+cyZM3MybxGR2srMZrl7UXn99EtREZGYUKCLiMRErQv0Dz+EP/wh11WIiNQ8tS7Q//d/YcwYePHFXFciIlKz1LpAv+QS6NABrroKfvgh19WIiNQctS7QGzWCP/4R3n8fHnoo19WIiNQctS7QAU47DXr3huuvh7Vrc12NiEjNUCsD3Qz+9CdYsQJuvTXX1YiI1Ay1MtABuneHoUPhP/8TPvkk19WIiORerQ102H764nXX5bYOEZGaoFYHert24WyX4mJ4551cVyMiklu1OtABfvtb2HdfuPJKyNFlaUREaoRaH+hNm8Lvfw9vvAHPPJPrakREcqfWBzrAuefCkUfCNdfApk25rkZEJDdiEej164fTGD/+GP77v3NdjYhIbsQi0AFOOAFOOgluuQV0/2kRqYtiE+gAt90G330Hv/tdrisREcm+WAX6oYfCyJFw772wYEGuqxERya5YBTrATTdBkyZw9dW5rkREJLtiF+itWoWLdj33nK6ZLiJ1S+wCHXTNdBGpm2IZ6LpmuojURbEMdNA100Wk7oltoOua6SJS18Q20EHXTBeRuiXWgQ66ZrqI1B2xD3RdM11E6orYBzromukiUjfUiUDXNdNFpC6oE4EOuma6iMRfnQl0XTNdROKuzgQ67HjN9E8/zXU1IiKZVacCHeCOO2DrVvjlL2HLllxXIyKSOWkFupn1M7NFZrbYzEanGO40M3MzK8pciZn14x+H66W//jrcfHOuqxERyZwKA93M6gPjgf7AYcAQMzusnOGaApcBb2e6yEwpLob8fDj7bNhjj3Dmy6uv5roqEZHMSGcLvTuw2N2XuPv3wERgUDnD3QLcCmzMYH0ZU1wMF1wAy5aFc9G/+y50P+003YNUROIhnUBvDSQeQiyJum1jZl2Atu7+XKoJmdkFZjbTzGauzHKKjhkD69fv2M0dvvkGhg/XD45EpPar8kFRM6sH/Am4qqJh3X2Cuxe5e1GrVq2qOutKSXVxrilTwsFSEZHaLJ1A/wxom/C+TdStVFPgCGCamS0FegKTa9qB0Xbtknc/5ZRweYCZM7Nbk4hIJqUT6DOAg8ysg5ntBpwFTC7t6e6r3b2lu+e7ez7wFjDQ3WtUPI4bB40b79itceNwNcYHHoD99oOzzoI1a3JTn4hIVVUY6O6+BbgYmAosAJ5293lmdrOZDazuAjNl6FCYMAHatw83v2jfPrwfOhSaN4cnn4SlS2HkyOptT3/2WfjFL+Df/66+eYhI3WSeo6OBRUVFPrOGtXH8/vdwww3w4IPh2i+Z9MMPMHZsmAeE0ybvvhuGDcvsfEQk3sxslruX26Rd534pmsq110LfvnDxxbBgQeam+/XXcPLJIczPPRc+/BC6doVzzgnnxOuepyKSCQr0BPXrw+OPh7b1s86CjRk4o37OHCgqgpdfDr9QfeCB8GvVV16B3/0OnngCunSBWbOqPi8RqdsU6GUccAA88gjMnQu/+U3VpvXYY9CrF3z/PUyfDhdeGNrvIaw8brwRpk0LK45evcLVILdurfJHEJE6SoFejgEDwm3rxo+Hv/+98uN//z1cckloH+/RI2x99+xZ/rDHHAPvvReuAnnVVaFp5ssvq1a/xJc7fP55OCYjUpYCPYk//CE0lYwYES4XkK7PPw/t8HfdFW5599JL4fZ3qTRvDn/7WxjnlVegc+fQRCMCIcTnzoXrr4eOHaF1a9hrLzjuuHDz88mTYcWKXFcpNYHOcknho4+gsDDc6eif/4QGDVIP//rrcMYZ4Vz2Bx8MpydW1nvvhfb7RYvCQdqxY6Fhw10qX8rYuDGcnvr88+HveuKJUFAA9WroZs28efD00+GxcGGo87jjoF+/cKOWt98Ox2hKLwOdnx/2CHv2DM+FhZCXl9OPEAvusHp12Fj77LOwB52fHza8mjTJfj2pznJRoFdg4kQYMiRcC6b0lMOy3Ldvkefnh2aaI47Y9Xl+9x1cdlk4gNqrVzhwmp+/69Or65Yvh3vuCQelV66EffbZ3qzVqhX89Kch3H/2s/ADs1xasGB7iM+fH0L8Jz+BM8+EwYND7Yk2bIB334W33gqPt9/efpmLhg3DCqtnz+0hf+CB24/jVGTr1nC7xg0bwspw48bwetOmMI369cOjXr3tr8s+kvUzC/3Mtj9yYePG8P347LPtgV3ec9nrQEGouWPHsOLs0iU8Cgth772rt2YFehWdd17Y4n7xRTj++B37rV8fruJYXAw//zk8+mjYHc6Ep54K0zaD++4LW/+Svhkz4M9/DuG4ZUs4PnHZZWEr94svwt/zhRfCo/RacZ06hXA/8UTo3Ts7W7iLFm0P8Q8+CH/vY4/dHuKVXcksXx6CvTTgZ8zYfnXRli1D8DRosHNQJz5v3Jj9e++WBnvZoE98X/q6fv3wGcp7rqifWfh7f/45rFq1cx15eeHkiNaty39u2TLsvc+eHR7vvrvjHdDy83cM+C5dMruhoECvou++g27dwpUZ33tv+1bSkiXhH27u3HCzjOuuy/zu+5IlYQ/hnXdCuP/Xf+18CQPZbvPmsId0xx3wr39B06bh3P9LLgmni5Zn69bwd506NTzeeCNMZ/fdoU+f7VvvhxySuS3JxYu3h/h774XpHn10CPHTToP998/MfCCszObN2x7y770Xvqe77x7CKy+v4teJ3Ro1CnulW7eGg7PJHqn6u2+fRkWvy+tXOp0tW8p/TtVv69awZ5YY0omv99678n/nlStDsL/77vagX7x4e//9999xS/6ooyo+tpaMAj0D3n8/hHrfvvDcc/B//xcuG2AWts7796++eW/eHH7BeuutcPjh4Vz5ww4Lu9S52lWtaVatCnsx48dDSQn86EchxM89F5o1q9y01q0Lp5NOnRq23ksv09C2bQj2Pn3Cst+0afujdIu27Ovy+n35ZdgSh/CPfeaZcPrpIVAkPlavDivPxC35+fPDCmX8ePj1r3dtugr0DLn3Xhg1KrS5vvRS2D3/299Cu2Q2vPhi+GVp4hkNu+0WtphKH4nvk/XLywsh16wZ7Lln8uc99wwHferXr7g299D8tGZN+OVr6XPi69LnTZvCLmjbtuHRpk3YgqnooHN55s0LzSqPPx6aC447LjSrnHRSenWnY+nSEOxTp4azj1avTj186VZs6SPxfV5eWKYnnhhCvG3b1NOSeFm/Pmwctmu363thCvQMcQ/t2M88A7/6FfzlL9lv/lixIhyoXbcunO9euuVXmdcbNoRgXb06vR8yNW26Y9g3bhyaoRKDet269KZlFlYsZdtn69ULu7tt2uwY9InP++0XQnrr1nAN+z//OaxY8/LC3+PSS8MZSdVpy5ZwxonZzkHdqJH2mqT6KdAzaMOGcN30o4+u/f+4pbfiW7MmhHuy57Ld1q8PFxdr1iyEfWngp/O6dAX47bfhQFJJSXgu+/rTT3e+9EL9+iH0IfRv3RouugjOPz8cqBKpCxToUuu4h4uaJQZ96fPateEc/9NO0zn6UvekCvRdaLWsu4qLw/non3wS2sDGjQsHRiXzzKBFi/AoKMh1NSK1gwI9TcXF4bTB0h8YLFsW3oNCXURqhhr6o+eaZ8yYnX8ttn596C4iUhMo0NNU+nPqdLuLiGSbAj1N7dpVrruISLYp0NM0btzO55w3bhy6p6u4OFznoV698FxcnMkKRaSuU6CnaehQmDAB2rcPZ2C0bx/ep3tAtPSg6rJl4ZS80oOqCnURyRSdh54l+fnl3yijffvw03IRkXSkOg9dW+hZkomDqmqyEZFUFOhZUtWDqmqyEZGKKNCzpKoHVTNxHry28EXiTYGeJVU9qFrVJptMbOFrhSBSsynQs2jo0HAAdOvW8FyZSwZUtcmmqlv4WiGI1HwK9Fqiqk02Vd3C1wpBpOZToNcSVW2yqeoWvlYIIrWAu+fk0bVrV5fsefxx98aNE2+7G94//nh647dvv+O4pY/27dMb36z88c2yM/+qfv7SaXwxsSQAAAaiSURBVLRvH2pu375y44pkCjDTk+SqttDriKpu4Ve1yUd7CNunU5W9BO1lSErJkr66H9pCr32qsoVa1/cQ3Ku+DGrCXkaux5fUW+gKdMmaurxCyEQNuW52yvX4pdOo6yukKgc60A9YBCwGRpfT/0pgPjAXeBloX9E0FehSWbV5heBe9ZVCrvcycj1+rlcoNWGF5F7FQAfqAx8BBwK7Ae8Bh5UZpi/QOHo9Cniqoukq0CXbcrlCcM99IOZ6haIVUtW/Q+5VD/RewNSE99cC16YYvhB4o6LpKtCltsnE7noutxBzHWhaIVXt85eqaqCfDtyf8P5s4K4Uw98FXJ+k3wXATGBmu3btKvcpRGIgl224uV6haIVUtRVCqawFOvAr4C2gUUXT1Ra6SPbl+qCgVki530JPq8kFOAFYAOxT0TRdgS4iu6Aur5BKpQr0Cu9YZGYNgH8DxwOfATOAX7r7vIRhCoG/Av3c/cOUE4zUtTsWiYgUF4cfs33ySfhR3bhxlbtIH6S+Y1GDikZ29y1mdjEwlXDGy4PuPs/MbiasKSYDtwFNgP8xM4BP3H1g5coUEYm3oUMrH+CVUWGgA7j7FGBKmW43Jrw+IcN1iYhIJelaLiIiMaFAFxGJCQW6iEhMKNBFRGKiwtMWq23GZiuBZTmZecVaAl/luogUVF/V1PT6oObXqPqqpir1tXf3VuX1yFmg12RmNjPZeZ41geqrmppeH9T8GlVf1VRXfWpyERGJCQW6iEhMKNDLNyHXBVRA9VVNTa8Pan6Nqq9qqqU+taGLiMSEttBFRGJCgS4iEhN1NtDNrK2ZvWpm881snpldVs4wfcxstZnNiR43ljetaqxxqZm9H817p2sNW3CnmS02s7lm1iWLtXVMWC5zzGyNmV1eZpisLz8ze9DMvjSzDxK6NTezF83sw+h57yTjnhMN86GZnZOl2m4zs4XR3+/vZrZXknFTfhequcaxZvZZwt9xQJJx+5nZouj7ODqL9T2VUNtSM5uTZNxqXYbJMiWr379kF0qP+wPYH+gSvW5KuOZ72Ztf9wH+kcMalwItU/QfADwPGNATeDtHddYHviD84CGnyw84FugCfJDQ7Y/A6Oj1aODWcsZrDiyJnveOXu+dhdp+BjSIXt9aXm3pfBequcaxwG/S+A6kvJl8ddVXpv9/AjfmYhkmy5Rsfv/q7Ba6uy9399nR67WEuy21zm1VlTYIeNSDt4C9zGz/HNRxPPCRu+f8l7/uPh34ukznQcAj0etHgFPKGfVE4EV3/9rdvwFeBPpVd23u/oK7b4nevgW0yeQ8KyvJ8ktHd2Cxuy9x9++BiYTlnlGp6rNwM4YzgSczPd90pMiUrH3/6mygJzKzfKAQeLuc3r3M7D0ze97MDs9qYeDAC2Y2y8wuKKd/a+DThPcl5GaldBbJ/4lyufxK7evuy6PXXwD7ljNMTViWIwh7XOWp6LtQ3S6OmoUeTNJkUBOW3zHACk9+17SsLcMymZK171+dD3QzawI8A1zu7mvK9J5NaEboDPw3MCnL5R3t7l2A/sBFZnZsludfITPbDRgI/E85vXO9/HbiYf+2xp2ra2ZjgC1AcZJBcvlduAf4EVAALCc0a9REQ0i9dZ6VZZgqU6r7+1enA93MGhIWfLG7/61sf3df4+7rotdTgIZm1jJb9bn7Z9Hzl8DfCbu1iT4D2ia8bxN1y6b+wGx3X1G2R66XX4IVpU1R0fOX5QyTs2VpZsOBk4Gh0T/8TtL4LlQbd1/h7j+4+1bgviTzzul30cK9jwcDTyUbJhvLMEmmZO37V2cDPWpvewBY4O5/SjLMftFwmFl3wvJalaX69jCzpqWvCQfPPigz2GRgWHS2S09gdcKuXbYk3SrK5fIrYzJQetbAOcD/ljPMVOBnZrZ31KTws6hbtTKzfsA1wEB3X59kmHS+C9VZY+JxmVOTzHsGcJCZdYj22s4iLPdsOQFY6O4l5fXMxjJMkSnZ+/5V1xHfmv4Ajibs+swF5kSPAcBIYGQ0zMXAPMIR+7eAo7JY34HRfN+LahgTdU+sz4DxhLML3geKsrwM9yAE9J4J3XK6/Agrl+XAZkI75H8ALYCXgQ+Bl4Dm0bBFwP0J444AFkePc7NU22JC22npd/DeaNgDgCmpvgtZXH6PRd+vuYRw2r9sjdH7AYQzOz6qrhrLqy/q/nDp9y5h2KwuwxSZkrXvn376LyISE3W2yUVEJG4U6CIiMaFAFxGJCQW6iEhMKNBFRGJCgS4iEhMKdBGRmPj/vVel3c6eR/oAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cImaq6dpg15E",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 320
        },
        "outputId": "7cfb698a-f728-46e5-cc8d-cf2174e3a07f"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "def show_all(history):\n",
        "    def show(history,acc,val_acc,label):\n",
        "        epochs = range(1, len(history.history[acc])+1)\n",
        "        plt.plot(epochs,history.history[acc],label='Training '+label)\n",
        "        plt.plot(epochs,history.history[val_acc],label='Validation '+label)\n",
        "        plt.legend()\n",
        "        \n",
        "    plt.figure(figsize=(15,5))\n",
        "    \n",
        "    #plt.subplot(121)\n",
        "    #show(history,'acc','val_acc','acc')\n",
        "    #plt.subplot(122)\n",
        "    show(history,'loss','val_loss','loss')\n",
        "show_all(history)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEvCAYAAAA0ITL9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxb1YH3/+/R4t2WkzirFUggAUJi2QEHGFJCoC1bKdsAJUMfyGSGAtNOF6bloSs89Nc+XZgO5SltB8oU6NAGphQa2lBaKAFaSpuFxAlZIAmB2AlZHOIljhdJ5/fHleRrRd5lS7Y/79fLL93l3HuPo0jWV+fcc4y1VgAAAACA7OHJdAUAAAAAAF0R1AAAAAAgyxDUAAAAACDLENQAAAAAIMsQ1AAAAAAgyxDUAAAAACDL+DJ14bKyMjtjxoxMXR4AAAAAMmrt2rUHrbUTU+3LWFCbMWOG1qxZk6nLAwAAAEBGGWPe6W4fXR8BAAAAIMsQ1AAAAAAgyxDUAAAAACDLZOweNQAAAAAD19HRodraWrW2tma6KuhFXl6egsGg/H5/n48hqAEAAAAjUG1trYqLizVjxgwZYzJdHXTDWqv6+nrV1tZq5syZfT6Oro8AAADACNTa2qoJEyYQ0rKcMUYTJkzod8snQQ0AAAAYoQhpI8NAnieCGgAAAIB+q6+vV1VVlaqqqjRlyhSVl5cn1tvb23s8ds2aNfr0pz/d6zXOPvvstNR11apVuvTSS9NyruHCPWoAAAAA+m3ChAlav369JOmuu+5SUVGRPv/5zyf2h8Nh+Xyp40Z1dbWqq6t7vcarr76ansqOQLSouazedUhPv16X6WoAAAAAI9LSpUt1yy236Mwzz9Ttt9+uv/3tb/q7v/s7zZ8/X2effba2bdsmqWsL11133aVly5Zp8eLFOuGEE3TfffclzldUVJQov3jxYl199dU65ZRTdP3118taK0lauXKlTjnlFJ1++un69Kc/3WvL2aFDh3TFFVcoFArprLPOUk1NjSTppZdeSrQIzp8/X01NTdq7d68WLVqkqqoqzZs3T6+88kra/826Q4uayxOrd+uPW/fr8qpp9PcFAAAABqC2tlavvvqqvF6vGhsb9corr8jn8+n555/Xl770JT355JPHHLN161a9+OKLampq0sknn6xbb731mKHsX3/9db3xxhuaNm2aFi5cqD//+c+qrq7WzTffrJdfflkzZ87UkiVLeq3fnXfeqfnz5+vpp5/WH//4R91www1av3697rnnHt1///1auHChmpublZeXpwceeEAXXnihvvzlLysSiailpSVt/069Iai5hIIB/c/aWu1paFV5aX6mqwMAAAD0yf955g1t3tOY1nOeOq1Ed350br+Pu+aaa+T1eiVJDQ0NuvHGG/XWW2/JGKOOjo6Ux3zkIx9Rbm6ucnNzNWnSJO3bt0/BYLBLmTPOOCOxraqqSrt27VJRUZFOOOGExLD3S5Ys0QMPPNBj/f70pz8lwuL555+v+vp6NTY2auHChbrtttt0/fXX66qrrlIwGNSCBQu0bNkydXR06IorrlBVVVW//z0Giq6PLhXBUklSze7DGa4JAAAAMDIVFhYmlr/61a/qvPPO06ZNm/TMM890O0R9bm5uYtnr9SocDg+ozGDccccd+slPfqKjR49q4cKF2rp1qxYtWqSXX35Z5eXlWrp0qR599NG0XrMntKi5zJlaLL/XqKauQRdXTM10dQAAAIA+GUjL13BoaGhQeXm5JOnhhx9O+/lPPvlk7dy5U7t27dKMGTP0+OOP93rMOeeco8cee0xf/epXtWrVKpWVlamkpEQ7duxQRUWFKioqtHr1am3dulX5+fkKBoO66aab1NbWpnXr1umGG25I+++RCi1qLrk+r06eUqyNtQ2ZrgoAAAAw4t1+++364he/qPnz56e9BUyS8vPz9cMf/lAXXXSRTj/9dBUXFysQCPR4zF133aW1a9cqFArpjjvu0COPPCJJuvfeezVv3jyFQiH5/X5dfPHFWrVqlSorKzV//nw9/vjj+sxnPpP236E7Jj5aynCrrq62a9asyci1e/KlpzbqNxv2aMOdFzCgCAAAALLWli1bNGfOnExXI+Oam5tVVFQka60++clPavbs2frc5z6X6WodI9XzZYxZa61NOU8BLWpJQuUBNbaG9U798I3oAgAAAGBgHnzwQVVVVWnu3LlqaGjQzTffnOkqpQX3qCUJxQYU2VB7WDPKCnspDQAAACCTPve5z2VlC9pg0aKWZPbkIuX6PNynBgAAACBjCGpJ/F6PTp1WohqCGgAAAIAMIailUBks1aY9DYpEMzPQCgAAAICxjaCWQkV5QC3tEe080JzpqgAAAAAYgwhqKVROd+Ze2ED3RwAAACCl8847T88991yXbffee69uvfXWbo9ZvHix4lN0XXLJJTp8+PAxZe666y7dc889PV776aef1ubNmxPrX/va1/T888/3p/oprVq1Spdeeumgz5MOBLUUZpYVqTDHq421x/7HAQAAACAtWbJEy5cv77Jt+fLlWrJkSZ+OX7lypUpLSwd07eSgdvfdd+tDH/rQgM6VrQhqKXg9RvPKA7SoAQAAAN24+uqr9dvf/lbt7e2SpF27dmnPnj0655xzdOutt6q6ulpz587VnXfemfL4GTNm6ODBg5Kkb3zjGzrppJP0gQ98QNu2bUuUefDBB7VgwQJVVlbq7//+79XS0qJXX31VK1as0Be+8AVVVVVpx44dWrp0qX75y19Kkl544QXNnz9fFRUVWrZsmdra2hLXu/POO3XaaaepoqJCW7du7fH3O3TokK644gqFQiGdddZZqqmpkSS99NJLqqqqUlVVlebPn6+mpibt3btXixYtUlVVlebNm6dXXnllcP+4Iqh1KxQMaPPeRnVEopmuCgAAAJB1xo8frzPOOEPPPvusJKc17dprr5UxRt/4xje0Zs0a1dTU6KWXXkqEnFTWrl2r5cuXa/369Vq5cqVWr16d2HfVVVdp9erV2rBhg+bMmaOHHnpIZ599ti677DJ997vf1fr163XiiScmyre2tmrp0qV6/PHHtXHjRoXDYf3oRz9K7C8rK9O6det066239tq98s4779T8+fNVU1Ojb37zm7rhhhskSffcc4/uv/9+rV+/Xq+88ory8/P185//XBdeeKHWr1+vDRs2qKqqakD/pm5MeN2NimCp2sNva9t7TZpXHsh0dQAAAIDuPXuH9N7G9J5zSoV08bd6LBLv/nj55Zdr+fLleuihhyRJTzzxhB544AGFw2Ht3btXmzdvVigUSnmOV155RVdeeaUKCgokSZdddlli36ZNm/SVr3xFhw8fVnNzsy688MIe67Nt2zbNnDlTJ510kiTpxhtv1P3336/PfvazkpzgJ0mnn366fvWrX/V4rj/96U968sknJUnnn3++6uvr1djYqIULF+q2227T9ddfr6uuukrBYFALFizQsmXL1NHRoSuuuCItQY0WtW5UBp1wtrGO7o8AAABAKpdffrleeOEFrVu3Ti0tLTr99NP19ttv65577tELL7ygmpoafeQjH1Fra+uA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\n",
            "text/plain": [
              "<Figure size 1080x360 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5zfQooAuJnVg",
        "colab_type": "text"
      },
      "source": [
        "Some of the validation losses are close to the no-learning baseline, but not reliably.\n",
        "This goes to show the merit of having this baseline in the first place: it turns out to be\n",
        "not easy to outperform. Your common sense contains a lot of valuable information\n",
        "that a machine-learning model doesn’t have access to.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "al27XeMCiXD0",
        "colab_type": "text"
      },
      "source": [
        "#Training and evaluating a GRU-based model\n",
        "A first recurrent baseline\n",
        "\n",
        "Gated recurrent unit ( GRU ) layers work\n",
        "using the same principle as LSTM , but they’re somewhat streamlined and thus\n",
        "cheaper to run (although they may not have as much representational power as\n",
        "LSTM )."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Aa-ZkvX6g118",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 225
        },
        "outputId": "df732b4a-2734-4c3f-f3e2-2eeeb3779c27"
      },
      "source": [
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model = Sequential()\n",
        "model.add(layers.GRU(32, input_shape=(None, float_data.shape[-1])))\n",
        "model.add(layers.Dense(1))\n",
        "model.compile(optimizer=RMSprop(), loss='mae')\n",
        "model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential_1\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "gru (GRU)                    (None, 32)                4608      \n",
            "_________________________________________________________________\n",
            "dense_2 (Dense)              (None, 1)                 33        \n",
            "=================================================================\n",
            "Total params: 4,641\n",
            "Trainable params: 4,641\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kYvYDEh9ikMc",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 712
        },
        "outputId": "3c6f6b4e-03cb-46f9-a03c-e8f436ad5bd9"
      },
      "source": [
        "history = model.fit_generator(train_gen,\n",
        "                              steps_per_epoch=500, #500\n",
        "                              epochs=20,           #20\n",
        "                              validation_data=val_gen,\n",
        "                              validation_steps=val_steps)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.3062 - val_loss: 0.2813\n",
            "Epoch 2/20\n",
            "500/500 [==============================] - 14s 29ms/step - loss: 0.2855 - val_loss: 0.2674\n",
            "Epoch 3/20\n",
            "500/500 [==============================] - 14s 29ms/step - loss: 0.2789 - val_loss: 0.2664\n",
            "Epoch 4/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2744 - val_loss: 0.2646\n",
            "Epoch 5/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2718 - val_loss: 0.2616\n",
            "Epoch 6/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.2668 - val_loss: 0.2671\n",
            "Epoch 7/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.2636 - val_loss: 0.2626\n",
            "Epoch 8/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2601 - val_loss: 0.2632\n",
            "Epoch 9/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2560 - val_loss: 0.2697\n",
            "Epoch 10/20\n",
            "500/500 [==============================] - 15s 31ms/step - loss: 0.2524 - val_loss: 0.2665\n",
            "Epoch 11/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.2451 - val_loss: 0.2684\n",
            "Epoch 12/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.2405 - val_loss: 0.2742\n",
            "Epoch 13/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2370 - val_loss: 0.2783\n",
            "Epoch 14/20\n",
            "500/500 [==============================] - 15s 30ms/step - loss: 0.2333 - val_loss: 0.2843\n",
            "Epoch 15/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2300 - val_loss: 0.2888\n",
            "Epoch 16/20\n",
            "500/500 [==============================] - 18s 36ms/step - loss: 0.2270 - val_loss: 0.2855\n",
            "Epoch 17/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2242 - val_loss: 0.2881\n",
            "Epoch 18/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2209 - val_loss: 0.2957\n",
            "Epoch 19/20\n",
            "500/500 [==============================] - 14s 29ms/step - loss: 0.2184 - val_loss: 0.3011\n",
            "Epoch 20/20\n",
            "500/500 [==============================] - 15s 29ms/step - loss: 0.2144 - val_loss: 0.3017\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bjpGDh2EikRI",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 320
        },
        "outputId": "a18cb813-1909-4e77-dfe6-1534980501a1"
      },
      "source": [
        "show_all(history)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3AAAAEvCAYAAAAErSPcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3yc1Zn3/8896r1LVrVkWy5y76baBhsMoSSBhBJDCrtkk5Cy2exvk63ZPJsn2ezmSQgpGzZAAgkxhCSETjBuGHDvVZYtW5Zl9S5ZZWbO748zlmQHG2PLumek7/v1mpekmXukawyW9dV1znUcYwwiIiIiIiIS/DxuFyAiIiIiIiIXRgFOREREREQkRCjAiYiIiIiIhAgFOBERERERkRChACciIiIiIhIiFOBERERERERCRLjbBZwtPT3dFBYWul2GiIiIiIiIK7Zu3VpvjMl4r8eCLsAVFhayZcsWt8sQERERERFxheM4x871mJZQioiIiIiIhAgFOBERERERkRChACciIiIiIhIiFOBERERERERChAKciIiIiIhIiFCAExERERERCREKcCIiIiIiIiFCAU5ERERERCREKMCJiIiIiIiECAW4C9DV6+Pnaw/T6/O7XYqIiIiIiIxgCnAX4J3D9Xzn1QP8cGWp26WIiIiIiMgIpgB3Aa6bmMVdc/L56ZrDvHu4we1yRERERERkhFKAu0D/emsJRWlx/O0zO2ju7HG7HBERERERGYEU4C5QXFQ4D989k4aObr7++90YY9wuSURERERERhgFuA9gal4SX7thAq/treaZzcfdLkdEREREREYYBbgP6K+vGcNV49L49xf3cbiu3e1yRERERERkBFGA+4A8Hof/9/EZREd4+NJvt9Pt9bldkoiIiIiIjBAKcBchKzGa7905nb1VrXz/zzpaQEREREREhoYC3EVaWpLF8gUFPLruCG8dqnO7HBERERERGQEU4C7BP91cQnFmPH/37E4a2rvdLkdERERERIY5BbhLEBMZxo/umUlzZy//8PtdOlpAREREREQuKwW4SzQpO5Gv3zSRlftr+fWGY26XIyIiIiIiAxkDvV3Q2QgtlVB/CKp2wLF3oGwl9HS6XeEHEu52AcPBp68qZN2hOv7j5f3MH5PG+KwEt0sSEREREQkNxkDvqcCtw77t6YDe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\n",
            "text/plain": [
              "<Figure size 1080x360 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VBbCEk6CKs8M",
        "colab_type": "text"
      },
      "source": [
        "Much better! You can significantly beat the common-\n",
        "sense baseline,compared to recurrent networks on this type\n",
        "of task."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DCD5BctQLBt4",
        "colab_type": "text"
      },
      "source": [
        "The new validation MAE of ~0.265 (before you start significantly overfitting) translates\n",
        "to a mean absolute error of 2.35 ̊C after denormalization. That’s a solid gain on the\n",
        "initial error of 2.57 ̊C, but you probably still have a bit of a margin for improvement."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rjtUiXyvjEB8",
        "colab_type": "text"
      },
      "source": [
        "# Using recurrent dropout to fight overfitting\n",
        "It’s evident from the training and validation curves that the model is overfitting.\n",
        "\n",
        "It has long been known that\n",
        "applying dropout before a recurrent layer hinders learning rather than helping with\n",
        "regularization.Thats why we will use recurrent dropout\n",
        "\n",
        "Every recurrent layer in Keras has two dropout-related\n",
        "arguments: dropout , a float specifying the dropout rate for input units of the layer,and recurrent_dropout,networks being regularized with dropout always take longer to fully con-\n",
        "verge, you’ll train the network for twice as many epochs.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zitUGcBfikSs",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 263
        },
        "outputId": "2473f676-a360-4023-eb0a-97fa4e93049f"
      },
      "source": [
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model = Sequential()\n",
        "model.add(layers.GRU(32,dropout=0.2,recurrent_dropout=0.2,input_shape=(None, float_data.shape[-1])))\n",
        "model.add(layers.Dense(1))\n",
        "\n",
        "model.compile(optimizer=RMSprop(), loss='mae')\n",
        "model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:Layer gru will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU\n",
            "Model: \"sequential\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "gru (GRU)                    (None, 32)                4608      \n",
            "_________________________________________________________________\n",
            "dense (Dense)                (None, 1)                 33        \n",
            "=================================================================\n",
            "Total params: 4,641\n",
            "Trainable params: 4,641\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "u2tDx79yikV0",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "420d2a80-c0e4-484e-c310-c7e7a3df6984"
      },
      "source": [
        "history = model.fit_generator(train_gen,\n",
        "                              steps_per_epoch=500,       #500\n",
        "                              epochs=40,                 #40\n",
        "                              validation_data=val_gen,\n",
        "                              validation_steps=val_steps)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/40\n",
            "500/500 [==============================] - 283s 566ms/step - loss: 75350210443677663232.0000 - val_loss: 0.7727\n",
            "Epoch 2/40\n",
            "500/500 [==============================] - 280s 561ms/step - loss: 55375702378829537280.0000 - val_loss: 0.7925\n",
            "Epoch 3/40\n",
            "500/500 [==============================] - 288s 575ms/step - loss: 53969126703340453888.0000 - val_loss: 0.7894\n",
            "Epoch 4/40\n",
            "500/500 [==============================] - 284s 567ms/step - loss: 51714189459613622272.0000 - val_loss: 0.7989\n",
            "Epoch 5/40\n",
            "500/500 [==============================] - 278s 556ms/step - loss: 51647098569605079040.0000 - val_loss: 0.7728\n",
            "Epoch 6/40\n",
            "500/500 [==============================] - 281s 561ms/step - loss: 50531826216701100032.0000 - val_loss: 0.7848\n",
            "Epoch 7/40\n",
            "500/500 [==============================] - 282s 563ms/step - loss: 50587466477058138112.0000 - val_loss: 0.7752\n",
            "Epoch 8/40\n",
            "500/500 [==============================] - 280s 560ms/step - loss: 51411917871374467072.0000 - val_loss: 0.7936\n",
            "Epoch 9/40\n",
            "500/500 [==============================] - 289s 577ms/step - loss: 50713899160806424576.0000 - val_loss: 0.7789\n",
            "Epoch 10/40\n",
            "500/500 [==============================] - 284s 568ms/step - loss: 50530973896177967104.0000 - val_loss: 0.7710\n",
            "Epoch 11/40\n",
            "500/500 [==============================] - 287s 574ms/step - loss: 52595277631362064384.0000 - val_loss: 0.7888\n",
            "Epoch 12/40\n",
            "500/500 [==============================] - 281s 561ms/step - loss: 51002510647479533568.0000 - val_loss: 0.7751\n",
            "Epoch 13/40\n",
            "500/500 [==============================] - 278s 555ms/step - loss: 47318132397152337920.0000 - val_loss: 0.7874\n",
            "Epoch 14/40\n",
            "500/500 [==============================] - 279s 558ms/step - loss: 49473001837490544640.0000 - val_loss: 0.7828\n",
            "Epoch 15/40\n",
            "500/500 [==============================] - 278s 557ms/step - loss: 50864234155318730752.0000 - val_loss: 0.7734\n",
            "Epoch 16/40\n",
            "500/500 [==============================] - 274s 549ms/step - loss: 50235171317586173952.0000 - val_loss: 0.7768\n",
            "Epoch 17/40\n",
            "500/500 [==============================] - 282s 563ms/step - loss: 49853268854797869056.0000 - val_loss: 0.7816\n",
            "Epoch 18/40\n",
            "500/500 [==============================] - 276s 552ms/step - loss: 49779247794126741504.0000 - val_loss: 0.7622\n",
            "Epoch 19/40\n",
            "500/500 [==============================] - 279s 558ms/step - loss: 50097508381500973056.0000 - val_loss: 0.7708\n",
            "Epoch 20/40\n",
            "500/500 [==============================] - 278s 556ms/step - loss: 50435145661741744128.0000 - val_loss: 0.7817\n",
            "Epoch 21/40\n",
            "500/500 [==============================] - 283s 566ms/step - loss: 51793879139892920320.0000 - val_loss: 0.7708\n",
            "Epoch 22/40\n",
            "500/500 [==============================] - 289s 579ms/step - loss: 49262701792171819008.0000 - val_loss: 0.7854\n",
            "Epoch 23/40\n",
            "500/500 [==============================] - 291s 583ms/step - loss: 50659838506132848640.0000 - val_loss: 0.7767\n",
            "Epoch 24/40\n",
            "500/500 [==============================] - 285s 570ms/step - loss: 49114949505393180672.0000 - val_loss: 0.7763\n",
            "Epoch 25/40\n",
            "500/500 [==============================] - 284s 568ms/step - loss: 50725389577935446016.0000 - val_loss: 0.7554\n",
            "Epoch 26/40\n",
            "500/500 [==============================] - 289s 578ms/step - loss: 48691035584016367616.0000 - val_loss: 0.7745\n",
            "Epoch 27/40\n",
            "500/500 [==============================] - 294s 589ms/step - loss: 49840767928758566912.0000 - val_loss: 0.7751\n",
            "Epoch 28/40\n",
            "500/500 [==============================] - 295s 590ms/step - loss: 47618297892858716160.0000 - val_loss: 0.7673\n",
            "Epoch 29/40\n",
            "500/500 [==============================] - 295s 591ms/step - loss: 49035267568974282752.0000 - val_loss: 0.7863\n",
            "Epoch 30/40\n",
            "500/500 [==============================] - 301s 601ms/step - loss: 48382385527064100864.0000 - val_loss: 0.7640\n",
            "Epoch 31/40\n",
            "500/500 [==============================] - 298s 596ms/step - loss: 48794165915965693952.0000 - val_loss: 0.7741\n",
            "Epoch 32/40\n",
            "500/500 [==============================] - 300s 600ms/step - loss: 50193580370518245376.0000 - val_loss: 0.7634\n",
            "Epoch 33/40\n",
            "500/500 [==============================] - 300s 599ms/step - loss: 49918195446327083008.0000 - val_loss: 0.7839\n",
            "Epoch 34/40\n",
            "500/500 [==============================] - 301s 602ms/step - loss: 48435808511173058560.0000 - val_loss: 0.7790\n",
            "Epoch 35/40\n",
            "500/500 [==============================] - 301s 602ms/step - loss: 49571186091149123584.0000 - val_loss: 0.7828\n",
            "Epoch 36/40\n",
            "500/500 [==============================] - 295s 590ms/step - loss: 48525736120251555840.0000 - val_loss: 0.7675\n",
            "Epoch 37/40\n",
            "500/500 [==============================] - 296s 593ms/step - loss: 50942158888538005504.0000 - val_loss: 0.7767\n",
            "Epoch 38/40\n",
            "500/500 [==============================] - 284s 568ms/step - loss: 48009547133570449408.0000 - val_loss: 0.7975\n",
            "Epoch 39/40\n",
            "500/500 [==============================] - 284s 569ms/step - loss: 50329552596369522688.0000 - val_loss: 0.7723\n",
            "Epoch 40/40\n",
            "500/500 [==============================] - 292s 584ms/step - loss: 51043479788836126720.0000 - val_loss: 0.7675\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "VcY1R3TTikY8",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 331
        },
        "outputId": "6efd4bcb-46ff-4114-92bd-46cbf0c6b5cf"
      },
      "source": [
        "show_all(history)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2AAAAE6CAYAAABwGDEcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXRc5Z3n/8+jfd8la7MteZW8Sra8YGNj7CRA2Akk0PSADzMh4fQ06aTT+UHSaej0IWfmhO5O9zSdGSfphKRJIGFrIJAFG2M7jsHyvsl4QZK12dr3raqe3x9VKsvGi2yrbpWk9+scnbr31q3SV3rqSvWp57nPNdZaAQAAAAACLyzYBQAAAADAREEAAwAAAACHEMAAAAAAwCEEMAAAAABwCAEMAAAAABxCAAMAAAAAhwQsgBlj/sMYc8YYc3AE+642xuw2xriMMfeed9//NsYc9H19IVD1AgAAAECgBbIH7KeSbh7hvtWS1kv6xfCNxphbJS2SVCJpmaSvG2OSRq9EAAAAAHBOwAKYtXaLpJbh24wx040xvzXG7DLGbDXGFPn2rbTW7pfkOe9p5kjaYq11WWu7Je3XyEMdAAAAAIQUp88B2yDpL621iyV9XdK/X2b/fZJuNsbEGWMyJN0oaXKAawQAAACAgIhw6hsZYxIkrZD0a2PM0OboSz3GWvt7Y8wSSdslNUr6kyR3IOsEAAAAgEBxLIDJ29vWZq0tuZIHWWufkfSMJBljfiHpowDUBgAAAAAB59gQRGtth6SPjTH3SZLxWnipxxhjwo0x6b7lBZIWSPp9wIsFAAAAgAAw1trAPLExv5S0RlKGpNOSnpK0SdIPJOVIipT0orX2O75hhq9JSpXUJ6nBWjvXGBMjabfvKTskfdlauzcgBQMAAABAgAUsgAEAAAAAzuX0LIgAAAAAMGERwAAAAADAIQGZBTEjI8MWFBQE4qkBAAAAIOTt2rWryVqbef72gASwgoIClZeXB+KpAQAAACDkGWOqLrSdIYgAAAAA4BACGAAAAAA4hAAGAAAAAA4JyDlgAAAAAK7O4OCgampq1NfXF+xSMAIxMTHKz89XZGTkiPYngAEAAAAhpKamRomJiSooKJAxJtjl4BKstWpublZNTY0KCwtH9BiGIAIAAAAhpK+vT+np6YSvMcAYo/T09CvqrSSAAQAAACGG8DV2XGlbEcAAAAAA+DU3N6ukpEQlJSXKzs5WXl6ef31gYOCSjy0vL9fjjz9+2e+xYsWKUal18+bNuu2220bluZzCOWAAAAAA/NLT07V3715J0tNPP62EhAR9/etf99/vcrkUEXHhGFFWVqaysrLLfo/t27ePTrFj0IToAevoG9QvP6xWTWtPsEsBAAAAxpz169fry1/+spYtW6ZvfOMb+vDDD3XdddeptLRUK1as0NGjRyWd2yP19NNP65FHHtGaNWs0bdo0/eu//qv/+RISEvz7r1mzRvfee6+Kior04IMPylorSXr77bdVVFSkxYsX6/HHH79sT1dLS4vuuusuLViwQMuXL9f+/fslSe+//76/B6+0tFSdnZ2qr6/X6tWrVVJSonnz5mnr1q2j/ju7mAnRA9beM6gnXz2gv721WP9j1bRglwMAAACMOTU1Ndq+fbvCw8PV0dGhrVu3KiIiQu+++66++c1v6pVXXvnEYyoqKvTee++ps7NTs2fP1mOPPfaJ6dr37NmjQ4cOKTc3VytXrtQf//hHlZWV6Utf+pK2bNmiwsJCPfDAA5et76mnnlJpaalef/11bdq0SQ899JD27t2rZ599Vs8995xWrlyprq4uxcTEaMOGDbrpppv0rW99S263Wz09znXUTIgANjktTrMnJWrjkTMEMAAAAIwZf//mIR2u6xjV55yTm6Snbp97xY+77777FB4eLklqb2/Xww8/rGPHjskYo8HBwQs+5tZbb1V0dLSio6OVlZWl06dPKz8//5x9li5d6t9WUlKiyspKJSQkaNq0af6p3R944AFt2LDhkvVt27bNHwLXrl2r5uZmdXR0aOXKlfra176mBx98UPfcc4/y8/O1ZMkSPfLIIxocHNRdd92lkpKSK/59XK0JMQRRktYWZ2lnZYvaey/84gAAAABwcfHx8f7lb3/727rxxht18OBBvfnmmxedhj06Otq/HB4eLpfLdVX7XIsnnnhCP/rRj9Tb26uVK1eqoqJCq1ev1pYtW5SXl6f169frZz/72ah+z0uZED1gkvSp4iz9YPMJbfmoUbcvzA12OQAAAMBlXU1PlRPa29uVl5cnSfrpT3866s8/e/ZsnTx5UpWVlSooKNBLL7102cesWrVKL7zwgr797W9r8+bNysjIUFJSkk6cOKH58+dr/vz52rlzpyoqKhQb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\n",
            "text/plain": [
              "<Figure size 1080x360 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "X9BzR23-MOCQ",
        "colab_type": "text"
      },
      "source": [
        "You’re no longer overfitting during the first 30\n",
        "epochs. But although you have more stable evaluation scores, your best scores aren’t\n",
        "much lower than they were previously"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MSKoW7BajnYc",
        "colab_type": "text"
      },
      "source": [
        "# Training and evaluating a dropout-regularized, stacked GRU model\n",
        "Because you’re no longer overfitting but seem to have hit a performance bottleneck,\n",
        "you should consider increasing the capacity of the network."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dW9NuBA-MuNo",
        "colab_type": "text"
      },
      "source": [
        "Increasing network capacity is typically done by increasing the number of units in\n",
        "the layers or adding more layers. Recurrent layer stacking is a classic way to build\n",
        "more-powerful recurrent networks: for instance, what currently powers the Google\n",
        "Translate algorithm is a stack of seven large LSTM layers—that’s huge."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ib0TCsvbMvYo",
        "colab_type": "text"
      },
      "source": [
        "To stack recurrent layers on top of each other in Keras, all intermediate layers\n",
        "should return their full sequence of outputs (a 3D tensor) rather than their output at\n",
        "the last timestep.\n",
        "\n",
        "This is done by specifying return_sequences=True"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Z-1Er1HVikdo",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 72
        },
        "outputId": "9bc77899-5eae-4c47-faaa-b83a1470ed61"
      },
      "source": [
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model = Sequential()\n",
        "model.add(layers.GRU(32,dropout=0.1,recurrent_dropout=0.5,return_sequences=True,input_shape=(None, float_data.shape[-1])))\n",
        "model.add(layers.GRU(64, activation='relu',dropout=0.1,recurrent_dropout=0.5))\n",
        "model.add(layers.Dense(1))\n",
        "\n",
        "model.compile(optimizer=RMSprop(), loss='mae')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:Layer gru_1 will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU\n",
            "WARNING:tensorflow:Layer gru_2 will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UHJJT4OZikcE",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "d3d9516e-c728-429c-ae55-0d19e36fb29f"
      },
      "source": [
        "history = model.fit_generator(train_gen,\n",
        "                              steps_per_epoch=500,      #500\n",
        "                              epochs=40,               #40\n",
        "                              validation_data=val_gen,\n",
        "                              validation_steps=val_steps)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:From <ipython-input-10-30eef2a2f90f>:5: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Please use Model.fit, which supports generators.\n",
            "Epoch 1/40\n",
            "500/500 [==============================] - 767s 2s/step - loss: 0.3193 - val_loss: 0.2810\n",
            "Epoch 2/40\n",
            "500/500 [==============================] - 769s 2s/step - loss: 0.2997 - val_loss: 0.2713\n",
            "Epoch 3/40\n",
            "500/500 [==============================] - 775s 2s/step - loss: 0.2933 - val_loss: 0.2691\n",
            "Epoch 4/40\n",
            "500/500 [==============================] - 777s 2s/step - loss: 0.2845 - val_loss: 0.2766\n",
            "Epoch 5/40\n",
            "500/500 [==============================] - 784s 2s/step - loss: 0.2789 - val_loss: 0.2782\n",
            "Epoch 6/40\n",
            "500/500 [==============================] - 775s 2s/step - loss: 0.2736 - val_loss: 0.2739\n",
            "Epoch 7/40\n",
            "500/500 [==============================] - 776s 2s/step - loss: 0.2682 - val_loss: 0.2708\n",
            "Epoch 8/40\n",
            "500/500 [==============================] - 775s 2s/step - loss: 0.2622 - val_loss: 0.2737\n",
            "Epoch 9/40\n",
            "500/500 [==============================] - 778s 2s/step - loss: 0.2587 - val_loss: 0.2800\n",
            "Epoch 10/40\n",
            "500/500 [==============================] - 778s 2s/step - loss: 0.2532 - val_loss: 0.2810\n",
            "Epoch 11/40\n",
            "500/500 [==============================] - 773s 2s/step - loss: 0.2496 - val_loss: 0.2909\n",
            "Epoch 12/40\n",
            "500/500 [==============================] - 757s 2s/step - loss: 0.2446 - val_loss: 0.2882\n",
            "Epoch 13/40\n",
            "500/500 [==============================] - 748s 1s/step - loss: 0.2405 - val_loss: 0.2985\n",
            "Epoch 14/40\n",
            "500/500 [==============================] - 763s 2s/step - loss: 0.2357 - val_loss: 0.3016\n",
            "Epoch 15/40\n",
            "500/500 [==============================] - 754s 2s/step - loss: 0.2316 - val_loss: 0.3119\n",
            "Epoch 16/40\n",
            "500/500 [==============================] - 743s 1s/step - loss: 0.2290 - val_loss: 0.3109\n",
            "Epoch 17/40\n",
            "500/500 [==============================] - 763s 2s/step - loss: 0.2259 - val_loss: 0.3095\n",
            "Epoch 18/40\n",
            "500/500 [==============================] - 768s 2s/step - loss: 0.2222 - val_loss: 0.3121\n",
            "Epoch 19/40\n",
            "500/500 [==============================] - 773s 2s/step - loss: 0.2195 - val_loss: 0.3240\n",
            "Epoch 20/40\n",
            "500/500 [==============================] - 773s 2s/step - loss: 0.2173 - val_loss: 0.3134\n",
            "Epoch 21/40\n",
            "500/500 [==============================] - 767s 2s/step - loss: 0.2142 - val_loss: 0.3219\n",
            "Epoch 22/40\n",
            "500/500 [==============================] - 768s 2s/step - loss: 0.2108 - val_loss: 0.3182\n",
            "Epoch 23/40\n",
            "500/500 [==============================] - 778s 2s/step - loss: 0.2090 - val_loss: 0.3215\n",
            "Epoch 24/40\n",
            "500/500 [==============================] - 781s 2s/step - loss: 0.2066 - val_loss: 0.3213\n",
            "Epoch 25/40\n",
            "500/500 [==============================] - 777s 2s/step - loss: 0.2049 - val_loss: 0.3264\n",
            "Epoch 26/40\n",
            "500/500 [==============================] - 780s 2s/step - loss: 0.2025 - val_loss: 0.3306\n",
            "Epoch 27/40\n",
            "500/500 [==============================] - 783s 2s/step - loss: 0.2014 - val_loss: 0.3297\n",
            "Epoch 28/40\n",
            "500/500 [==============================] - 783s 2s/step - loss: 0.1987 - val_loss: 0.3290\n",
            "Epoch 29/40\n",
            "500/500 [==============================] - 792s 2s/step - loss: 0.1970 - val_loss: 0.3327\n",
            "Epoch 30/40\n",
            "500/500 [==============================] - 804s 2s/step - loss: 0.1955 - val_loss: 0.3281\n",
            "Epoch 31/40\n",
            "500/500 [==============================] - 802s 2s/step - loss: 0.1942 - val_loss: 0.3297\n",
            "Epoch 32/40\n",
            "500/500 [==============================] - 791s 2s/step - loss: 0.1931 - val_loss: 0.3312\n",
            "Epoch 33/40\n",
            "500/500 [==============================] - 788s 2s/step - loss: 0.1920 - val_loss: 0.3279\n",
            "Epoch 34/40\n",
            "500/500 [==============================] - 786s 2s/step - loss: 0.1906 - val_loss: 0.3339\n",
            "Epoch 35/40\n",
            "500/500 [==============================] - 790s 2s/step - loss: 0.1889 - val_loss: 0.3330\n",
            "Epoch 36/40\n",
            "500/500 [==============================] - 792s 2s/step - loss: 0.1885 - val_loss: 0.3352\n",
            "Epoch 37/40\n",
            "500/500 [==============================] - 798s 2s/step - loss: 0.1862 - val_loss: 0.3305\n",
            "Epoch 38/40\n",
            "500/500 [==============================] - 797s 2s/step - loss: 0.1859 - val_loss: 0.3307\n",
            "Epoch 39/40\n",
            "500/500 [==============================] - 799s 2s/step - loss: 0.1833 - val_loss: 0.3335\n",
            "Epoch 40/40\n",
            "500/500 [==============================] - 791s 2s/step - loss: 0.1836 - val_loss: 0.3314\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "i1aVOAAENYWg",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 320
        },
        "outputId": "f9c850f8-7386-40e9-afe4-2cbef19ff0a9"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "def show_all(history):\n",
        "    def show(history,acc,val_acc,label):\n",
        "        epochs = range(1, len(history.history[acc])+1)\n",
        "        plt.plot(epochs,history.history[acc],label='Training '+label)\n",
        "        plt.plot(epochs,history.history[val_acc],label='Validation '+label)\n",
        "        plt.legend()\n",
        "        \n",
        "    plt.figure(figsize=(15,5))\n",
        "    \n",
        "    #plt.subplot(121)\n",
        "    #show(history,'acc','val_acc','acc')\n",
        "    #plt.subplot(122)\n",
        "    show(history,'loss','val_loss','loss')\n",
        "show_all(history)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1080x360 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3GyoKwhOmvZg",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# Saving model\n",
        "model.save('jena_climate_Stacked_Gru.h5')"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hMdNCjkwNnu4",
        "colab_type": "text"
      },
      "source": [
        "You can see that the added layer does improve the\n",
        "results a bit, though not significantly. You can draw two conclusions:\n",
        "\n",
        " Because you’re still not overfitting too badly, you could safely increase the size of\n",
        "your layers in a quest for validation-loss improvement. This has a non-negligible\n",
        "computational cost, though.\n",
        "\n",
        " Adding a layer didn’t help by a significant factor, so you may be seeing diminish-\n",
        "ing returns from increasing network capacity at this point."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7eFcfUe1kaCo",
        "colab_type": "text"
      },
      "source": [
        "# Using bidirectional RNNs\n",
        "All you need to\n",
        "do is write a variant of the data generator where the input sequences are reverted along\n",
        "the time dimension (replace the last line with yield samples[:, ::-1, :], targets ).\n",
        "Training the same one- GRU -layer network that you used in the first experiment in this\n",
        "section,"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7ubhtOdoN-Ek",
        "colab_type": "text"
      },
      "source": [
        "# Practice below is not done in Book"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "M4GMt4kCkJ-g",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def generator(data, lookback, delay, min_index, max_index,shuffle=False, batch_size=128, step=6):\n",
        "    if max_index is None: #If max index is not specified, we will set it to very end of the data\n",
        "        max_index = len(data) - delay - 1 # 1 step peche kharehoke agay ka data pridict kara sakte hai\n",
        "    i = min_index + lookback # 0 se start nahe kersakte lookback kerna hai to utna agay se stat kerna parega\n",
        "    while 1:\n",
        "        if shuffle: \n",
        "            #Generate random rows\n",
        "            rows = np.random.randint(min_index + lookback, max_index, size=batch_size)\n",
        "        else:\n",
        "            if i + batch_size >= max_index: \n",
        "                i = min_index + lookback    # ager data khatam ho raha ho to yeah set kerdo\n",
        "            rows = np.arange(i, min(i + batch_size, max_index))\n",
        "            i += len(rows) # \n",
        "        samples = np.zeros((len(rows),lookback // step,data.shape[-1])) # past data\n",
        "        targets = np.zeros((len(rows),))\n",
        "        for j, row in enumerate(rows):\n",
        "            indices = range(rows[j] - lookback, rows[j], step)\n",
        "            samples[j] = data[indices]\n",
        "            targets[j] = data[rows[j] + delay][1]\n",
        "        yield samples[:, ::-1, :], targets        # only changed this line for reverce sequence\n",
        "        #yield samples, targets # sample pe lookback aur target mai delay ka bht sara data hai"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "AQwoijCukKAE",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 225
        },
        "outputId": "26d64381-d255-4a3a-cfc2-7f5c0a85af57"
      },
      "source": [
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model = Sequential()\n",
        "model.add(layers.Bidirectional(layers.GRU(32), input_shape=(None, float_data.shape[-1]))) # changed this layer\n",
        "#model.add(layers.GRU(32, input_shape=(None, float_data.shape[-1])))\n",
        "model.add(layers.Dense(1))\n",
        "model.compile(optimizer=RMSprop(), loss='mae')\n",
        "model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential_2\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "bidirectional (Bidirectional (None, 64)                9216      \n",
            "_________________________________________________________________\n",
            "dense_2 (Dense)              (None, 1)                 65        \n",
            "=================================================================\n",
            "Total params: 9,281\n",
            "Trainable params: 9,281\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UCd-kxW_mjqc",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 712
        },
        "outputId": "a89ba9b2-511a-4a85-d225-c018833cb1b0"
      },
      "source": [
        "history = model.fit_generator(train_gen,\n",
        "                              steps_per_epoch=500, #500\n",
        "                              epochs=20,           #20\n",
        "                              validation_data=val_gen,\n",
        "                              validation_steps=val_steps)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/20\n",
            "500/500 [==============================] - 22s 44ms/step - loss: 0.2913 - val_loss: 0.2741\n",
            "Epoch 2/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2748 - val_loss: 0.2658\n",
            "Epoch 3/20\n",
            "500/500 [==============================] - 21s 43ms/step - loss: 0.2689 - val_loss: 0.2673\n",
            "Epoch 4/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2624 - val_loss: 0.2645\n",
            "Epoch 5/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2571 - val_loss: 0.2682\n",
            "Epoch 6/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2501 - val_loss: 0.2693\n",
            "Epoch 7/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2461 - val_loss: 0.2686\n",
            "Epoch 8/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2394 - val_loss: 0.2718\n",
            "Epoch 9/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2343 - val_loss: 0.2785\n",
            "Epoch 10/20\n",
            "500/500 [==============================] - 21s 43ms/step - loss: 0.2273 - val_loss: 0.2790\n",
            "Epoch 11/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2210 - val_loss: 0.2867\n",
            "Epoch 12/20\n",
            "500/500 [==============================] - 21s 43ms/step - loss: 0.2159 - val_loss: 0.2901\n",
            "Epoch 13/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2109 - val_loss: 0.2979\n",
            "Epoch 14/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2059 - val_loss: 0.3016\n",
            "Epoch 15/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.2003 - val_loss: 0.3083\n",
            "Epoch 16/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.1954 - val_loss: 0.3100\n",
            "Epoch 17/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.1890 - val_loss: 0.3114\n",
            "Epoch 18/20\n",
            "500/500 [==============================] - 21s 43ms/step - loss: 0.1856 - val_loss: 0.3147\n",
            "Epoch 19/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.1820 - val_loss: 0.3177\n",
            "Epoch 20/20\n",
            "500/500 [==============================] - 21s 42ms/step - loss: 0.1769 - val_loss: 0.3203\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-ieLUFx8OwUM",
        "colab_type": "text"
      },
      "source": [
        "The reversed-order GRU strongly underperforms even the common-sense baseline,\n",
        "indicating that in this case, chronological processing is important to the success of your\n",
        "approach. This makes perfect sense: the underlying GRU layer will typically be better at\n",
        "remembering the recent past than the distant past"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DKuvbAv6PCYc",
        "colab_type": "text"
      },
      "source": [
        "Importantly, this isn’t\n",
        "true for many other problems, including natural language(IMDB): intuitively, the importance\n",
        "of a word in understanding a sentence isn’t usually dependent on its position in the sen-\n",
        "tence."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RcmeAcXjv8lj",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "######## Finish #################"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EcV4bDxHBTJI",
        "colab_type": "text"
      },
      "source": [
        "# We Saved a Model Above lets try to use that for Preediction"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "54KV_SuTSBCA",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "6fc3c039-0566-4a72-881f-91302344ab26"
      },
      "source": [
        "# files in current folders\n",
        "ls"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[0m\u001b[01;34mdrive\u001b[0m/  jena_climate_Stacked_Gru.h5  \u001b[01;34msample_data\u001b[0m/\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1R9U43i9C4go",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        },
        "outputId": "50d1c59b-351d-421c-ce35-ac57d7d6cf95"
      },
      "source": [
        "# moving saved model in a folder\n",
        "import shutil\n",
        "shutil.move(\"jena_climate_Stacked_Gru.h5\", \"/content/drive/My Drive/ML and AI\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "mkdir: cannot create directory ‘/content/drive/My’: Operation not supported\n",
            "mkdir: cannot create directory ‘Drive/ML’: No such file or directory\n",
            "mkdir: cannot create directory ‘and’: File exists\n",
            "mkdir: cannot create directory ‘AI/Models’: No such file or directory\n",
            "mkdir: cannot create directory ‘/content/drive/My’: Operation not supported\n",
            "mkdir: cannot create directory ‘Drive/ML’: No such file or directory\n",
            "mkdir: cannot create directory ‘and’: File exists\n",
            "mkdir: cannot create directory ‘AI/Models/Mymodels’: No such file or directory\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'/content/drive/My Drive/ML and AI/jena_climate_Stacked_Gru.h5'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3AKl6_XgELXw",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "371b91b0-a60f-4a61-a112-7804f46a5136"
      },
      "source": [
        "ls"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[0m\u001b[01;34mand\u001b[0m/  \u001b[01;34mdrive\u001b[0m/  \u001b[01;34msample_data\u001b[0m/\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "EFjond35Fr1M",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "f34f4272-e689-402f-a507-c7e839d889ca"
      },
      "source": [
        "import os\n",
        "os.listdir(\"/content/drive/My Drive/ML and AI\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['Datasets', 'pretrained word embeddings', 'jena_climate_Stacked_Gru.h5']"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 23
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oF1uo_Nkw8IY",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 377
        },
        "outputId": "e7f23993-a013-4b49-9674-e66e12c47d02"
      },
      "source": [
        "# loading data again\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "\n",
        "df = pd.read_csv(\"/content/drive/My Drive/ML and AI/Datasets/jena_climate/jena_climate_2009_2016.csv\")\n",
        "print(\"Length of dataset :\",len(df))\n",
        "print()\n",
        "display(df.head())\n",
        "values = df.iloc[:,1:] # excluded date\n",
        "float_data = np.asarray(values) # converting in numpy array"
      ],
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Length of dataset : 420551\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date Time</th>\n",
              "      <th>p (mbar)</th>\n",
              "      <th>T (degC)</th>\n",
              "      <th>Tpot (K)</th>\n",
              "      <th>Tdew (degC)</th>\n",
              "      <th>rh (%)</th>\n",
              "      <th>VPmax (mbar)</th>\n",
              "      <th>VPact (mbar)</th>\n",
              "      <th>VPdef (mbar)</th>\n",
              "      <th>sh (g/kg)</th>\n",
              "      <th>H2OC (mmol/mol)</th>\n",
              "      <th>rho (g/m**3)</th>\n",
              "      <th>wv (m/s)</th>\n",
              "      <th>max. wv (m/s)</th>\n",
              "      <th>wd (deg)</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>01.01.2009 00:10:00</td>\n",
              "      <td>996.52</td>\n",
              "      <td>-8.02</td>\n",
              "      <td>265.40</td>\n",
              "      <td>-8.90</td>\n",
              "      <td>93.3</td>\n",
              "      <td>3.33</td>\n",
              "      <td>3.11</td>\n",
              "      <td>0.22</td>\n",
              "      <td>1.94</td>\n",
              "      <td>3.12</td>\n",
              "      <td>1307.75</td>\n",
              "      <td>1.03</td>\n",
              "      <td>1.75</td>\n",
              "      <td>152.3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>01.01.2009 00:20:00</td>\n",
              "      <td>996.57</td>\n",
              "      <td>-8.41</td>\n",
              "      <td>265.01</td>\n",
              "      <td>-9.28</td>\n",
              "      <td>93.4</td>\n",
              "      <td>3.23</td>\n",
              "      <td>3.02</td>\n",
              "      <td>0.21</td>\n",
              "      <td>1.89</td>\n",
              "      <td>3.03</td>\n",
              "      <td>1309.80</td>\n",
              "      <td>0.72</td>\n",
              "      <td>1.50</td>\n",
              "      <td>136.1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>01.01.2009 00:30:00</td>\n",
              "      <td>996.53</td>\n",
              "      <td>-8.51</td>\n",
              "      <td>264.91</td>\n",
              "      <td>-9.31</td>\n",
              "      <td>93.9</td>\n",
              "      <td>3.21</td>\n",
              "      <td>3.01</td>\n",
              "      <td>0.20</td>\n",
              "      <td>1.88</td>\n",
              "      <td>3.02</td>\n",
              "      <td>1310.24</td>\n",
              "      <td>0.19</td>\n",
              "      <td>0.63</td>\n",
              "      <td>171.6</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>01.01.2009 00:40:00</td>\n",
              "      <td>996.51</td>\n",
              "      <td>-8.31</td>\n",
              "      <td>265.12</td>\n",
              "      <td>-9.07</td>\n",
              "      <td>94.2</td>\n",
              "      <td>3.26</td>\n",
              "      <td>3.07</td>\n",
              "      <td>0.19</td>\n",
              "      <td>1.92</td>\n",
              "      <td>3.08</td>\n",
              "      <td>1309.19</td>\n",
              "      <td>0.34</td>\n",
              "      <td>0.50</td>\n",
              "      <td>198.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>01.01.2009 00:50:00</td>\n",
              "      <td>996.51</td>\n",
              "      <td>-8.27</td>\n",
              "      <td>265.15</td>\n",
              "      <td>-9.04</td>\n",
              "      <td>94.1</td>\n",
              "      <td>3.27</td>\n",
              "      <td>3.08</td>\n",
              "      <td>0.19</td>\n",
              "      <td>1.92</td>\n",
              "      <td>3.09</td>\n",
              "      <td>1309.00</td>\n",
              "      <td>0.32</td>\n",
              "      <td>0.63</td>\n",
              "      <td>214.3</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "             Date Time  p (mbar)  T (degC)  ...  wv (m/s)  max. wv (m/s)  wd (deg)\n",
              "0  01.01.2009 00:10:00    996.52     -8.02  ...      1.03           1.75     152.3\n",
              "1  01.01.2009 00:20:00    996.57     -8.41  ...      0.72           1.50     136.1\n",
              "2  01.01.2009 00:30:00    996.53     -8.51  ...      0.19           0.63     171.6\n",
              "3  01.01.2009 00:40:00    996.51     -8.31  ...      0.34           0.50     198.0\n",
              "4  01.01.2009 00:50:00    996.51     -8.27  ...      0.32           0.63     214.3\n",
              "\n",
              "[5 rows x 15 columns]"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "p0AxmIxIyYit",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#normalizing data\n",
        "mean = float_data[:].mean(axis=0) # Before we normalize 200000 tarting\n",
        "float_data -= mean\n",
        "std = float_data[:].std(axis=0) # But now we are normalizing all\n",
        "float_data /= std"
      ],
      "execution_count": 3,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GMeHb4IpzCRj",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def generator(data, lookback, delay, min_index, max_index,shuffle=False, batch_size=128, step=6):\n",
        "    if max_index is None: #If max index is not specified, we will set it to very end of the data\n",
        "        max_index = len(data) - delay - 1 # 1 step peche kharehoke agay ka data pridict kara sakte hai\n",
        "    i = min_index + lookback # 0 se start nahe kersakte lookback kerna hai to utna agay se stat kerna parega\n",
        "    while 1:\n",
        "        if shuffle: \n",
        "            #Generate random rows\n",
        "            rows = np.random.randint(min_index + lookback, max_index, size=batch_size)\n",
        "        else:\n",
        "            if i + batch_size >= max_index: \n",
        "                i = min_index + lookback    # ager data khatam ho raha ho to yeah set kerdo\n",
        "            rows = np.arange(i, min(i + batch_size, max_index))\n",
        "            i += len(rows) # \n",
        "        samples = np.zeros((len(rows),lookback // step,data.shape[-1])) # past data\n",
        "        targets = np.zeros((len(rows),))\n",
        "        for j, row in enumerate(rows):\n",
        "            indices = range(rows[j] - lookback, rows[j], step)\n",
        "            samples[j] = data[indices]\n",
        "            targets[j] = data[rows[j] + delay][1]  ##The target is the second column in the data, which should be the '\"T (degC)\"'. So this model predicts the temperature in Celsius degree.\n",
        "        yield samples, targets # sample pe lookback aur target mai delay ka bht sara data hai"
      ],
      "execution_count": 4,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "mXVG7Ud30GXm",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "lookback = 1440   # 1440/6 = 240(samples) kitna past data dekhna hai\n",
        "step = 6          # 10 min bt ka data hai, 6 step matlab 60 min(1 hour) ke bt ka data lo\n",
        "delay = 144\n",
        "batch_size = 128  # kitne line uthane hai\n",
        "\n",
        "train_gen = generator(float_data,\n",
        "                        lookback=lookback,\n",
        "                        delay=delay,\n",
        "                        min_index=0,\n",
        "                        max_index=200000,\n",
        "                        shuffle=True,\n",
        "                        step=step,\n",
        "                        batch_size=batch_size)\n",
        "\n",
        "val_gen = generator(float_data,\n",
        "                    lookback=lookback,\n",
        "                    delay=delay,\n",
        "                    min_index=200001,\n",
        "                    max_index=300000,\n",
        "                    step=step,\n",
        "                    batch_size=batch_size)\n",
        "\n",
        "test_gen = generator(float_data,\n",
        "                    lookback=lookback,\n",
        "                    delay=delay,\n",
        "                    min_index=300001,\n",
        "                    max_index=None,\n",
        "                    step=step,\n",
        "                    batch_size=batch_size)\n",
        "\n",
        "val_steps = (300000 - 200001 - lookback) // batch_size # in book code batch size was not divided\n",
        "# How many steps to draw from val_gen in order to see the entire validation set\n",
        "\n",
        "test_steps = (len(float_data) - 300001 - lookback) // batch_size # in book code batch size was not divided\n",
        "# How many steps to draw from test_gen in order to see the entire test set "
      ],
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PcEPBmaS2Hq4",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 105
        },
        "outputId": "e744237e-da34-4f14-e839-62b9d2eb14ef"
      },
      "source": [
        "# loading saved model\n",
        "\n",
        "from tensorflow.keras.models import load_model\n",
        "model = load_model('/content/drive/My Drive/ML and AI/jena_climate_Stacked_Gru.h5')\n",
        "print()\n",
        "print(\"model : jena_climate_Stacked_Gru.h5 was loaded\")"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:Layer gru_1 will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU\n",
            "WARNING:tensorflow:Layer gru_2 will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU\n",
            "\n",
            "model : jena_climate_Stacked_Gru.h5 was loaded\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2Mi9ojtx2gZ7",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 272
        },
        "outputId": "f042127d-b7d0-48f1-a080-5eef4149bc5e"
      },
      "source": [
        "from tensorflow.keras.optimizers import RMSprop\n",
        "\n",
        "model.summary()\n",
        "model.compile(optimizer=RMSprop(), loss='mae')\n",
        "print(\"model compiled\")"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential_1\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "gru_1 (GRU)                  (None, None, 32)          4608      \n",
            "_________________________________________________________________\n",
            "gru_2 (GRU)                  (None, 64)                18816     \n",
            "_________________________________________________________________\n",
            "dense_1 (Dense)              (None, 1)                 65        \n",
            "=================================================================\n",
            "Total params: 23,489\n",
            "Trainable params: 23,489\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n",
            "model compiled\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "EF2DRH2v2gdM",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "outputId": "8b26316b-0703-4217-d286-a548f8c24dc7"
      },
      "source": [
        "# PREDICT on ALL test data\n",
        "\n",
        "preds = model.predict_generator(test_gen, test_steps)\n",
        "print (type(preds))\n",
        "print(len(preds))"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:From <ipython-input-9-56793d88cc8b>:3: Model.predict_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Please use Model.predict, which supports generators.\n",
            "<class 'numpy.ndarray'>\n",
            "119040\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-U2-9x1e3Vhl",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 299
        },
        "outputId": "7ef59b1b-ff49-4132-979d-45c4ed0e5b41"
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# Set the params for the charts\n",
        "lenPreds = len(preds)\n",
        "predTemp = preds[0:lenPreds,:]\n",
        "print(predTemp.shape)\n",
        "\n",
        "# CHART Predicted \n",
        "UlimPred = lenPreds\n",
        "#UlimPred = 10000\n",
        "LlimPred = 0\n",
        "SampleSizePred = UlimPred - LlimPred\n",
        "plt.plot(range(SampleSizePred), predTemp[LlimPred:UlimPred], 'b', linewidth=0.27)"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(119040, 1)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7ff4ec6925c0>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 10
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD4CAYAAAAJmJb0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd9wdRfX/P/PcJ08qkEDyAxIiCQktgLTwlUiRXkIRERVQFEERBAEV+EqRjhThKwmIECOIlGDoSGihg0IgAQIppNBLKAFCSCh5yvz+mHvc2bkzs+XuLbvPeb9e93X37t0yu7Nz9syZM+cIKSUYhmGYYtLS6AIwDMMwtYOFPMMwTIFhIc8wDFNgWMgzDMMUGBbyDMMwBaa1EScdOHCgHDZsWCNOzTAMk1tmzJixWEo5KMk+DRHyw4YNw/Tp0xtxaoZhmNwihHgj6T5srmEYhikwLOQZhmEKDAt5hmGYAsNCnmEYpsCwkGcYhikwLOQZhmEKDAt5hmGYAsNCnmEYpsCwkGcYpjCMH9/oEjQfLOQZhikMb7+tPkwAC3mGYQrD8uXAn/7U6FI0FyzkGYYpDFdcAXR0NLoUzQULeYZhCgGlq+a01WFYyDMMUyguu6zRJWguWMgzDFMIWIO3w0KeaUq++KLRJWDiICXw/vuNLgXjg4U805SccUajS8DEoaurebxZWJO3w0KeYZjUCNHoEjBRsJBnakp7OzB5cqNLwdQKKYHrr290KRSsydthIc/UlI4OYNasRpeCqSXvvNPoEjA+WMgzmfPPfwbLUqbr0v/xj9mVh6kdzaQ962X5/PPGlaPZYCHPZM6MGcFyWiHP5Id9961u/64uFY4gS155Jdvj5RkW8kxNYSFfbKQENtqoumN89BFw+eXZlIXgZy6AhTyTKVKGTS1SAi1VPmWPPFLd/kxtqVagskCuLSzkmUw566zw764u1Yhffhl47bX4x9lpp2D53nuzKRuTPf/+dzbHycK230zjA80EC3kmU0zbqpTAU08B8+cni/O95ZbZloupDZdf3pyaPPcOAljIMzVFSmDZMrbNF5XZs7M5TjVa+N13V3+MIsNCnqkpWXXDOzurPw6TPV1djS4B8PjjjS5Bc1O1kBdCDBVCPCKEmCOEmC2EOC6LgjHNyZw5wGefxd+ehHwaLf7KK9X33LnNM6uSCUNjLtXCNvnakYUm3wHgt1LKUQC2BnC0EGJUBsdlmpDHHgM+/DD+9tU0vFdfVd9TpnADblay0OSFCJtcOLNTtlQt5KWUi6SUz5WXPwMwF8CQao/LNCdC+AWuGXZWStbSioxLk09qq3/qKfX90kvATTelKws/I3YytckLIYYB2BzANMt/Rwghpgshpn+YRBVkmoooIf/uu+HfUgJPPJHuXOaxmOajqwu4+urK9RtvHP8YPCBfWzIT8kKIfgBuBXC8lHKp+b+UcoKUcrSUcvSgQYOyOi1TZ6KEfKkU/u3qzn/wgd+lUkql1RHUnWeai64ue4CyIVX05eNq5O3twfjQ4sXhcrBWH5CJkBdC9IAS8DdIKW/L4phRLFpUj7MwJj4h/9xzlYGhXNvOmwc8/3ywvGIFsGSJe1+OZNmcuOr34IPDv6dV9O0r+de/orX6554LlufPB269VS3PnRuOmcQEZOFdIwD8DcBcKeX/VV+keDRLNpruhk/IP/EEsNTow0VpVC+/DJx9NrBgAXCboR7ovQDWzJqTuAOvJIx9xDHrkb3+iiuCkBnPP6+UBN2Vkp+XgCw0+W0AHAJgJyHEC+XP2AyOyzQhPiFvG4TTtzUH46RU9twhQ1RO1zlzKo9HbLNN+jIztSML7xrzeaLfTz7pjk75+uvq3C0twIMPqmfnL3+pvixFJAvvmiellEJK+XUp5Wblzz1ZFI5pPoRQUQNt2IKR6UJAt8GbL4MlS4AHHgj//8UXQYMfMyZ9mZnakUbIP/SQ+z9didh5Z+Cuu/znpuctydyN7gbPeGUSc/759vV6o9PXEb5Zq52d4X3vvFNpa19+qX6zB0Zz4hPyevIYnT33DP92hQhesUKN17i21XuOZjnYXBPAQp5JRJS5xhTy+ra+htfVFfbMmT8/eh+m8fiEvGsgtL09WLbVrynIXaxYAdx+u798DAt5JkNefhl49tnwOt/g6QUXqO9nngFuucUed572Z02+OfEJ4TgpHM84I/xcvPyyX8jTc3DPPaqXd/PN6jcrA25YyDOJ8Gny11xTuU430ZgNltxgH3sM+M9/Kn3sAW68zU61A6/nnBP+bT5DruPPnh3uEbz5ZnXlKDIs5JlEJNWoqZGecUZlg/3qK+CNN4BevZQGRzFLdC8bekmwJt+cZOldI0RlPfvGcfQYNxMn2o/JsJBnUpCkAT39tPr+4otKgbDSSsDkycAqq6jfZMO1af/caJsH/SXscnHUJy0lwazniy5Sz4MtBSQHMotHLoX8nntWzqxk6kNSjZpspkBYyAsR1KEZ1EyH4tfQy4JpPH//e/Q2//lP5TrTNEOY4ahNQd/ernzhTfSwF65jMjkV8vfdp6YxM40hbgOaNk2FCQaUK5ypydti15g5Qy+5RH2bs2GZ5uaLLyrXuWa9LlwYLNuUiDPOCJY//xx49FG1fOqpqYvXrcilkAfYRltPvvpKfYBk991s1HFeDnfeGf7N3jXNB4UFjsuyZSqAmKv+aSa0a1D/8ceD9V9+yb26pORWyDP147HHwnFF0naF0wzSNUN6OSZM0tnHEyYorxlXXZ51ln9/U6jHef7YXBOQSyG/1lrqrW/GOmFqw+LFwcxDm7ZlmwFrizpo2uRtsMZePGgg3SV4yRXSF6BMt9vrx3FFLb/vvmRlLDK5FPJUya4BoIcfrltRcsv48fG3HTwYGD5cLduEsG1m49ZbVzbqNFo5a2SN4Re/yO5YrtADJv/+t4pf5KtzU8i7kpOccoo/Rk53IpdCHqiMaaHDb/FofAk7bPjCE8QJIwvEc6vzRbFk6geFlciCTTYBVl3VXZf6+vZ24MUXgalT7duYQt73fNx/f7ryFo1cCnkpgbfeCpJOMPUjyn6qY05QmT49ep/rrw//djViPXY4kz1bbZVse5+w7dcPWG21Sk2esn2Z66+7rlLI6wPwcYW8TndW/HIr5AG77yyTPbp2/eqr8RuWmekpDrZUcjY4HWDtmDkz+T5pBkNfeCH+8fUJcnEDmOl0ZxNuLoV8FHEFRXfn2muTbf/446qxZWFCiTvAak6UAVQZXnut+jIwdszelElU5EjXf11dYQ09yXOkC/Ozz45/DPbOyqmQj8rveuON9SlH3pk9Gzj33HjbSunXnv/wh2zKBKgk34StkS5dqqJWMo1h2TKlSOnjOlHClswsphnGhRmR9NJLg2Vf0DuTrbZSIYkpbWB3JJdCnskOMyerb7CK/JVtDfqTT7Irky8oFeDOTMXUhyuvBMaNCw/O+oT8e++pb1MgU+wZc99PPgEuvNB+rKQeW889p5SZt97yb1dkCiXkKT45k56pU1XeVRMhKkMO6EQJ5iSssUawbDPXsMdNfbjqKvd/jzwS9qrShe0bb4S3/b//U99mvV12mX29D1c+WB9/+1v84xeRQgn5jz9udAmaE1u0vhdfVA3E1kheftl+nNZW9S1lpW/8n/5UfZkIn/dERwfbWevFkUeGY7brTJ8OXHFF8FuvE5e5tKsrnEiE9qmmF8gv/GgKI+S/+ipeJpruiC2QE0V3jIuUQVIPKd35O+OS1NuBGvOpp3LDrieUYzcKV55WHf1F8O676WY3p9Hkk3jxFJHCCHnW7tzYGkJXlz0cbEuL+16SJu86ZhzuvDNaG6duvH4eGoi77bbKRvvBB8q1M0uTEaNwafImrudB1/b1bXymvyTEeQ6jHDWKTmGEPGt3yejsVF4SQPjetbRU2lRJ4yJN/rHH0seYeeQR5QLnE/L6IJm53ZdfVpp6LroIOPlkdwILJjlUvz16xNvepcnrQl7vPUppz+nr47LLkmny9N+rryY7T9FgId9N6epSH1vAMZt7opRhTT4tUgbnjru9+W2r68mTg5cWUz0kqOnbNhivo9eJHlOKwgibE+OkjK8o0HbHHhtve+Lii5NtX1RyL+QnT1bfpjBg/JCwNRuaq+Hdd19YyPuy8vhYsECdI+mMVdL6pFSauw19kgyTDfQyPvxw9e2y0evtzjZwv3hx5bq4mry+ndm+bcHxmDC5F/IUD4Vsh3fc0biy5ImODvuL0Sbkv/UtNVCqC3ky6fhS99m49151jhdfTLafnhruww+D9TNmBHFs2FyTHbbIkZMnu8c9zjvPfSxbr00fyGdqS+6FPHHKKer7zTcbW45m4+OP7Z4sr72mUijef388z4j33rPPcEwq5H3nMI+tL7vMNcuXA59+Chx0ENC7d/KyMHZsCsB//uPuKfvcIG25BYB0Qp576skpjJAnDeO00xpbjmbjk0/8Xdply/xCnnJ12nJ2AukaXZJBW9tAmy35yHrrhXsazz2X7Szc7sQ114TjzRBxBjmTEFfIu4KTMfEojJBnm7ydXr38/7/ySvi3GfiLkiib3fRq7ncaIU/7vP9+2L570UX2QbxnnuHJcWn56CPVywOSCXlf6G+bySapd021uBSVe++tbznqTeGEPBMmTkOSUvmfA/bZit/4htsWm0aQRgn5JCEMXnrJ/sIZN45TCVbDv/6lvuMKeQCYNCn+8dPa5Ktp57o7p84jj6Q/Zh4onJDnhh0mrpA3kyUTPXqEB2n1fQDg2WeTlymNTR6we8+88UZYk6cJXkkzXzF29HDUPgGbdAb0vHk88FovCiPkH31UfbNGH/YyIeGn26eTTCh59tlw6F+CNLw0M43TCHkhKiNmEq+8Evj7U4+EyQY9gYivrpctU/lZ4zJxYrYpBqtBymLPls5EyAshrhZCfCCEmJXF8dLQ3We16Zx5ZrBMAvX884N1SV6EL71kN8ksXKi+ayHkbQOrtun1V1wBbLFF8NvU3rlXVz1PPhksuyaiEUkySqVVxmqhxC1enDzAXp7ISpP/O4A9MjoWkyEk6F5/PVhnNpTbb3fvT+YaF2mEfJQHlO7ySWW1xZC/4AKVPxQATj8dmDJFZTWiiVrcq4vm00/9/69YESxHCfkkNGJ2MpXdNpGvyLGvMhHyUsrHATTEl4EjT1ZCg2ZAoN3efLP6/tOfKhuqL1hUS4s/SFWtu7l64zPLYUsE8f77xfeWqAYzE9iRR/q37+wM6iBLIe8yvUXh8rlPwnXXhX8XvcdXN5u8EOIIIcR0IcT0D/Upi0zm9OwZLOtp0wDgt7+t1Fp8DfeNN9xazqJFfi0/C/Rk7ePHJ9u36I03DaZw1dPi2eq5szPQ9h99NFrI0wz0WqH3LJh41E3ISyknSClHSylHDxo0qKpjDR7sO0/495w5VZ0ql+y+e7AcNZkICAvSJFx1VeVLJGuiXiI2QZ6FtldkXIL61FMrx186O4N7PH9+tJDXx37yRJFNe7n0rvFFQzQrS4+I113QTViuWPI6Ni+HefOivSWkbM54MbfdlrzRTpxYm7I0G77ezcKFwD77hNfpQh6Ivq9ZxYl3YU7Wy4Ki9/gyCB7beHRtzzWrjQmwNVTT3/2LL8KBwGw0w2DVY4/Z1ycJZQs0jztfPXDdG1uIaddMZxdpYhk1A6zJRyCEmATgKQDrCyHeFkIcnsVx41Jru3CemGU4scbR5IFgngHR2Rk9oagZhHxWdHYCn3/e6FLUHlv+AB+dne7JaUWBNfkYSCkPyuI4aXnvvUaevbmI05OJI5x79gTWWMO/TZG8WMaNA0aMUELs6KMbXZra0d2F/F13NboE9SeXNnnzzWtLSFAkKFhUHOJ4zmSlgfsCUjWapMKIbM9m6sOikUbIJ4lf0+z84Q/29Xm/Lh+5FPImURW0fHm+B2CvuSb+tlkJ+UWLgCuvjH/ealh99docN2k3vN5REeuFPm5RrWki78LQ5nmV9MWXNwrxWLsG3+65R313dOQ7YBWFEIhDHAEeZ5vVVwe+8534562GWjQwMlu5NDcbJACTZq1qdqZMCf9Oer+LIgCLch1JyZ2Qt4UFteWUBILBRCHyHbjKF3bAxHyZ2UIHuzxJXnghWF6xAlh11fjnjYNLU25tVZO0akGSUMhUvuuvr01ZmoFqtVYzIXcz0swDqY0Ia5w7IX/vvZV207/9zb09Cchmth8n4Y03gK++cv8fx0Pkr3+1r9cjVS5fnlwYrLIK8JOfuP93Nb6nnqqNqSSpsC6quYaYM0fVQTXJr597Lrvy1Ir99ku2fT1fCo1wVij4Y53M1JEHbr/dHqyLiPPAuoSZvm+plHyAVspwBEzf8XW+9rVk54nLzJnJGnDRhfxGG6n7cdNNKg6QHoLA54asv+x9cYyahW23ta+nXAPdjcI+1vff3+gS1AYhwsI3yWQVW95OHT0iYUtLum79sGHu/3xC9Igjkp8rijjlv/ji4H40czc/K+bOVffl4IOBu+8O1seNCWM+Oz16ZFe2rHDV4x131LcczULuhPw//hFvu0WLgin3RWq8LS3hhnbKKeH/fWF8o4T8BRcEy6VS9jH699zT/d/IkZUREqvlwQftYxI6+qzeWbPUtPkiB8G69Vb1HCSZGe7zk88iu1PWPaik7b3oA7K5E/Jxp00/+KA7p2OeMYW8KbDffde9b5SQ1xvH0qXZ3789IjIODBmS7fmWLPHfDyB8zcuWKSGYh8HFtFAPzdfj8mE+O9/7XtVFylzIH3WUfb1P+BdJETTJnZCPiz7AUaQKpLjwaaABW5eQ1xvbhRe6NZxf/jLd+W2xyzfdNFg+9NB0x60Wuk4SgEV6Xkz0Ok4zk9V8dsaMqb5MWaOH2mYKLOSLFFdFx4zXnSSUMoUFdt0bfVDNZpP/n/9R3yNH2vd3CYoTTgAOOUQtr7YasPLKwX+NTuasC3RaLsIArCuZS5oXmV6v5vPX6PoD0vcA6brYXNOExOlqNsPDVw9owheg7Mm+sLA0n8Al5L/8Mli2eddsvHG6Mm64IfD//p9abmsDevUK/jMF6qhRwfLWW6c7X1L0ZOH6d57Rx2a6uoJr/Oorlf4uSTJ3nUmTwr+b4YUYt+y03ezZ6vuss4L/5s3LtkzNRBNUUXLidMeSxMDOM2PHBst/+Uv4Ws1JVCS04/RySqVKf/zevdV30vu57rrh4+oeGX37hrc96aRgee21k53Hxlpr+f/XJwcVScjrmvwllwBnnx38puTcca/zs8+CZTN/gC+3Q72QUpn9DjvMP7hP3HOPmhCozym59trala/R5FLIx9Eeihq0zGxkuuZrYvo+Rw28RvlD9+kTXT6gcnLadtuFTSEk5J95Bth11/C2bW3Bci17YwsWqElYQgQCsUhC3sSMFZ/Eg+ihh4JlenYoMU2jesymme2QQ9QM7bi9TT1JTJGVQCCnQj6pi1vRKjHt9dB+LnutftworxQfuqa+ww7hY5dKgSDfdFOVck6nXkL+44+Bd95RAozKUCSbvImeEhIAnngi/DvO/Aog6EX/6lfq2/dCvPzyYHmVVaLLeMwx0dsQP/hBsKyXYZdd4h+ju5DLxzntBIyiCXvAfU0XX6w0Vdu21Q5Ku85JdnedzTYL/9aFvE1AUN3usENthTyde9q0ypdeETX5ZcvCv5O0hfvuC5bp2enZU7nEjh0LrLSSfT99gtsZZ7iPT4PyZA6Mw1Zb2dfvtlv8YxBFlAs63ULIF7US//nP8G89Ps999wHf/Gb4/5tuUt8uIb9gQbBsZpiKAwUZ0+/3wQerb11L3mYb9zHoBbDyymEhb9rus0R3oQSqF/KmQG0GzGuaNy++C6We6F1/djbZRJlIXLFi4vSIhg9PFwhPv54hQ4Dvfjf5MYiieuIR3ULIE0UT9jNmhB92vTE+9JB7UMx1H3yBz+Lgc0mjcpZKwEEHhdfpUJmlDAsJ3YyTFWZ5szLX6IOczYLtXscNqex6GZDpxnW/fPeR3B5tvT/i5z93/6dfz7nnxvO4c8mNIg+6AjkV8mkbYdGEPAB88EHyfWplromD6V1j4hLyac+ZRCsv0sCreb9s16THcolrk9efHXqZ7b23fT/bHAQT17N41FHB4G7Uscklt571dvXV9TtXtXQLIV+0SQ+U03bmTH8sH9dDnzZ4289+5v+ftDLffda9a3w2+SFDgAEDgvVpX0xvvRW9TTO5UOqxdKpF96ipZiDdFeeG7tO3v538mLoTgD657mtfUz2EAw7wD9YKocYCfv1r5b1Vb1w5LJ55pr7liEMuhXxaiiLkL7lEfT/wQP3OefzxwHrrKa3NdR8POEB96/+TIKD/NtnE71tNZpmddgq64Mcck32IW90/PmtzTTXstVc2x7n4YmDq1OB3lEdaNW0jzgvYfHHSeEtXVxDu4uc/V2M4q6yiZkb72H579Vz4xhVM4R/nGVq0qLqQxPVKmZmEbiHkn31WfedZyKcxy2QJadgbbmj/X2+UtvtMIRHOPDMQ8j5Nfq+9As+cnj2TRU2MwixfM/nJV5Pv1oy4qWcJq+Wzn0bI2/Zdd93ATBd1zM02U+EydIXBPIevJ+Aaf1q8OOyAkJQ330y/b63IpZCPupFmZZOALIqQf/rpePvUQli54r7rdnbffR450m+TJ3e8vn2BgQOD9Unc66I466xwOAiaGWwK+QsvzO6ccXG9ROOgp2/s3TusubrMC4Stzk44Id55dRfUzTcP/xeVEIaEuR45Uhfyvpfeqqu6n/FTTlHavovx4+3rOzurc901XYabgVwKeb3xx4Ee/jwLef1hfuedePuYaRKzYORI+300G4bP28HnKTNiBHDiicEykaWb2+efh5O/07GvuUZ9t7Qoje53v0t3/GrK6htsTMIXX4S9Z157zb89jfPofP3r8c5lC31NLwiKMioEsMYawXb0PNOzdPTRwW89blLa8aO2NvekP8J2r1esAB5+ON05m5VcCnkh/O5VphC6+OLw+mb3i507t3JdGjtxnHyvWaEL+YMPDuLV2DStlVZSWnKca7r0UnW8qAabBnMGMPWWhIjfWwIqIzPSmEmjef/98MvMh63MS5fG25fa04svAjvvrJbJjLLGGvZQA1T3dO832ij4TxfyeijqJLS0pHtmvvwyeNn7uOsu+/pm9MzKpZDv6qqc6BMHatS//3115//yy8rZpFmiP2QUGdL38LiEedqokTb0IGM2TV4X2L17B43cNtGlVIrfAI87DthiC/uLOW4sHRtCAAceqJZtM16TBN6aPLlyXdJe48yZybaPy+uvp9/XnGzngu7f4MHBc0DX37+/ChqmD3QDwXbmzNW111b1nTapiX78qMFbkxkzwpFYfbiiVjajtSC3Qt6XYGL4cPt6qgDbKHuSgGbLlwOPPhp/+7jQALHO6aerb5+Qd2XL8vVYvvWt+OUC3D0nmuVqmmuoEdvqYpVVgMMPT3Z+27W46jkOuinD1jCTCHkplSeLHq0xaWO/4YZk28clrmZpK++gQfH2pfESX8/MdLek1JJ6FFVAJaRZZ53qBqCpLOTRFZdJk9IL6TlzVDykP/853f61JJdCPsom73JDkxL46CP7INRFF8U//6OPZt8t6+gIwg7oxHHrc2lrvgeWvF2qhcplls9ndy+V/DMd43Lmmen31V/qNrNE0hC6zz8f9gBqFo2umuc0bhYy6lHpL3ozABqVxYw6msZ0GkfLP+qodOESzMitcfn739W1fPll89Q9kUshH5VMwiUQ589XkxX+9a/qzn/QQdkL+ZtvDntHEHHc+nbayb4+i4fNdmzbcc247Wuv7Y5pEkXccifV1JKQZsJdM9pj447LRJngCJ9nlJ5NzHwehFCDu9Omqd/k3phGyLt6PT/8YbDcv3/yOhQim/kYLOTrgKuxPfCAetNWq0W2t6ezkUdhO2Y1QbN8D1vcSTeu8+qufoMHA/36hf/v0cMfeTDpOYcOTXcsG3E8WKLmJZj3tqurujAMWYzx2K7LllfX5OOP45/DNw7S0qIiU+6yS+A6uf76wf+9eqn1ffsGA6ppBKJrn7SDtMS4cfGF/Jpruv9rNseOXAp5VyP9xS/Ut0swnXxysgfah0/oVmNGcJ0njXdNFjZ5VygDKtfPfqa8XzbYoHKbtD7DtkksUfHIq7Xh6syfD3zve/5tzj03WL7uOiV4dN/rpMKLsjU1AjOjmM7o0eHfPjNcS4sS8JtvHtjaaexFCKVY/OY3ygOHgpvFEYg07kNUM+Bu8sknwXJ7e3wh/6MfhX/rYSNYk68hZIPzCeCsZo76zlFtUg99shedx8wIFUWplM3Dtv76/kQM661X/TlMzEQiUQwf7o5pnoYorXrBgvAA2/vvq3ut+6LXu6HPn59+X9/1miF8o8w1xI47Vv4vpTKjTJwYvCzi3CezrekTrvS5FGkwY80kbWfEDTc0b4ysTIS8EGIPIcQ8IcRCIUTKKSTVccwx6mG46Sa/1uuazfbII8nO5zvHuHHhuCFJ0V3X6DznnOPfx/St7+xMnkHLhpSVsxhNdzhAmWwawYgRKkgVCZAsiFIEJkyo9Gjq6lIafaPQ09kl5dNP4wsmnybvUnxovIJCFgwapDT5lhZ7ko8kpknqvafFvO60Ql6ncOYaIUQJwJ8B7AlgFICDhBCezKPVY3Oda2lRD8cPfuB/SF580d6IzQktUfiE/IgR8Wel6tjKTeuiYr2b3jJtbdklWY6K8ieECmCmk7XQp+ujsLLEj3+szt+zZzzhUO3A2vjx9vOQSyAJiXprc2bS9ij0MZS4rpIAsM8+7v9cz9vgwWpQVPeKaWtTClejlAMXumafNA4N9eSKqMn/D4CFUspXpZQrANwEIEXw0fjYXLviejdk5Y/s6hGQRpm0ol3b0zW5knITptZejafHVVeFf9satn58W9lNoV8tl1yi8pR2dSmB/r//Gz73tdcC++4bfZxqko90dqrJWbbr/fvf1TeZD+rd0BcuTL/vI49EP3/EeuvZvdv22cf9zP3618qcpreZnj2j49ro1CucsG660nPUxoHqwKfJ1zLDmYsshPwQAHrU7rfL60IIIY4QQkwXQkz/sMqg2VtuWdXumfDXv9rXd3WpsYEkXbavvnK/pGidOSszjhBJK2j0QSVXlicpq5uMlIuE7P8AACAASURBVJT+/dV9lVL5o19wQfj/3r3dXlNZRQake3Hnne5tyIzTKG3O5oZrI+kkqb59VfLuUskucG0D765jAWo26rHH2rezTXTMal5HFMOHh/MYJCGOTT7NTP1qqdvAq5RygpRytJRy9KAk/UMPur97nz7BiH1cqont4gr41NGhGkSSRn7xxWpCzgsvVO5nxvggomz01RClpfu2ryW+OQO2cQLissvSn1PXkOn4FIrWFcmwnpjeYtdfn/wYnZ3h3ATDhlW6I+6zjzKVlUpBL8pFnF7BmDHu+S6jLMbeesX47+qK98zblLhmjY2Vxa17B4DuxbxWeV3N0UfW99wzucue6eoYNyAT4H7oOjuVB0LSipZSzcI0y+Qy1+iuX0A2g6zmOX3/N0JT7eqyu35GlccWWyYKcsmcMCFYZ55Dj9dukmX8ex9/+EP1x1hpJTUTnDjxxOBlQddMvedSKTomzE9/al+v3780GvNxxyXbPg1LlkTHr5HSH4QubirFepGFkH8WwLpCiOFCiDYABwJwxGirHVnMOHTFgDHp08cdYKujI52Qp2w0JBwoDgpdk3m8OA9L2pCpUZp8I4W8b3zAVf9pzDUkyFz5TaOoJghetQnVP/00ehv9XnV2hn8fdlgQ3I6u3xWjyIZNEwfC7phbbhkOeheHpD11nbgDvDNnRgt5V90WVpOXUnYAOAbA/QDmApgspZxd7XHjoD+YQ4ZUH7kubuMSwu1qlUbICxEMCNODsmQJ8OCDbpt81KQuIcJaaBKiusY0fZ3KGjVRKStcg3tCqPsdNfCapKdm6xlJ6fcT17n33njbzZgRDtULhMPYxg3Boc8IHjcu3j7EihXhOre95GldNQk1xoxJv29aKMm46xm1KSs+DyLA3WumYII+BagRoS8ysXRJKe+RUq4npRwhpTwvi2PG5ZxzlOvWuuuGY1LHwZw5GzfMqG/wpKNDlSdtZeqeQw88EE6uoD88UbbXamyYUWUnIU+B0ZJOXkqLy1QDqPJsu61//1/9Kv65bFFJpVSzpglfuOSoJB3ErbcGx6E61Z9DPR6LDfLqofvw1FPJ6/6TT/zeYjrVCPm0UBnSuATTSzKJV9UGGyiPICB+7x4I6s3Xc8yruaau6HZ3IdRDZ9Pgox702Za+RlxN3ldRHR3q3GmFLE2Pvvpq9U2N99//TnacagaVo8w1++6b3gOhGgYPrvS8oAk2tnKadlNzHMPHkiXB8fVzJR2UjkKIYCIeafR6b0EPX2xDt6UDKs55mmfPtY9+jXvv7Rby1eZoiEMtnQ10vvpKJasBkiWAoXtlTh5sNLkT8jpCqIfTFl8lKieonuOTiCvkfYOcnZ3BxKw00INy5plqWU8gkrUWsOOOdje2qLKvs048n/SsKZUqwxcMHKjCLtjcOX/zm/DvNNFHdW1dyvAAeFdX9dm3/vAHYMoUtUzHbm1VGn4aPvoonpA361h/mbheZNtv7xbyWYaVcFEvDxuKoJk0w1cSrb+e5FrIA8qtyzbQExXE6KSTKtfFNdc8/rj7v/b29Jr8xhuHG9Vzz1UXkySKqVNVUmuTOC8oXzybenL00crLauWVa3N8fWxFSuA8zRjZ0VGpSafh2mvVNykPpVIQkjcNaYS8i2Yw1+hx4Sn/bxJGjHBfr22QmmYD12IANbc2+UYhhNLYzYESIdINwsbV5O+9153kePlyJeijutk6upukrjlmFUzNRalkj/cSxySx8spuL4pmIm5IZRemJq/z5z9n07siQUMhF1pbw8d9913ANn9QzySm24GrEfKm7boZhPwpp1R3n/ff3z0eYwtzUctZqWyTj4EuXH1vxTQ247hCvlSqDMFKtLWp3kUa/2UzY1VUKINGsuGG1QvQelCtUDI1ed//PuLUnS7kH34YeOUV9fu551R6ORNXyso4CsY3vuEup+8l3wghDySLr2PD5X5pE+g+K4CtZ91M7dJG7oT80UeHf9tu8MEHA2+9Vbk+irjmGiBIAm0iZaXfcRSubePY+LIY5PHZU5v9AY6i2iBt+ovWdi98uQP+8Y9gmdzrfFDk0tZWpXBQDCHXvATXC+bss6PPtf/+9vXmeZpFyNvMq0kwk9oQtusxg+DpTJxYeU98+aabgdwJeT2GRc+edlvsZptVht51obsiRmnyUdnrp05V0QjHj7d3r124BKlpSrFt9/zz8c/jwjdzsyhCXp+2n4Snnw6WbffCpzXrYXDj9BLJ+6e1VSkK9Ax1dQHnn1+5fTV149o3SsjXIn9ArdlnnyCBuAl57Bx1VLDON+mqo6NSKdNf5sQbb9j3Z5t8QoYOVflWbcQdoJk5M1iOaog0ccVVUaedFvbaierKL13q96eul9ZE13PggcnMXNtvX5vyZAkJ+biTk0xeeilYtgnG224Llg87LPxfkp4hEMx2LpWUkCebe2cnsGxZeNvnn4/vEkrugHGImjm+zjrxj9Us+CJYUpvX76Xv5fmnP8V7llxeV2yTrzG2CRH6Ax3VKF97TTU4l/DdeedwnBQzUqLJm28qTx1XozLDx5LvvI4tr6XLhOPyiKHzDx3qTvdng2YTNjNUV0kEnYuoBurSFpNCQp5s9P37V04EmzQp/oQr23PvupY04TPqSdTksCjOOiusAFJvafHiIKWj75pPOEGFvE5KvSYM2iiskNcTTRM2O6ReoVGa/C23qMbnsvOOGBE200SNCzz8sDsJhQ3bBC7bNHvbpJFzzwXuuCPeeYhhw5qvkScli94QDYBS2AEXWXXFhVBmP3Kp7NfPHnxPP58vDoztGbHV6557xtuukVSTrHv33YFNNgnH0KFQF1ICa68dLPtIk3gmi0ByaSmskLdFwjO9QcxuXBy7aUeHW3CY+SKvvNJ/rMsuU9p63FSBtofP1oBN3+3zzwe22SbaNWzKlPCYR9LJIM3AECOTgS/0QFxOOUV922yvOlll4qIxEhLyNMHOtg0QLZTiTuknDTfrWb3NwqRJqkekexbRtR55ZOB27bvmRYuAK65Idl5d2WObfMaYQYnMDOunnRb+HUfI+zT5JAGwACXg+/QBHnoo3va2qJLvvVe5zrSrr7mm/7jkMjZnDnDAAWr5hBPilanZMBtRWp/nww8PlsnDJkrgRSUAjwslCSch39VVqVi8+GLgcnvOOf6y2Z5X2/Zx1+WVAQPCE6uAcFwcPQ4SYQYiNGc9x0FPBco2+Yw54ohgeb/9Kv83BYIvuQRVDmnytspKEwrVJqRd2MIp2OyypnYfNZjW0qJCyZKAB+wPfB4wr9NmtouD/qIkD66oe0GDbTazB81qjYOZ17erq9JPvqMjGIw94wx/+j/9nrS1qR5n3HrNW/2nRW8j+jXr0V7b2/2z3XX0e05m1ssuYyFfU2w2S/OG+zR58nS45BKlsdsCMiUV8ptsEv6tu3FVgynodtghWthtsEFl/JdGdC2rxRwH2Wqr9McixYAaelQDpZerbcapa/aybbCW9idHgM5O4L77wtvYXPnisPvu7ntii8vfXYT8ZpvZ8/PqWvisWZXuxnHuD23z9tss5DMnSQX4poKvWBF4HXz+uVo27e9A8iTRunseEO2eZiujKxmC7mM/bJg7/ynxs5+FfcJNU1ZeSduo9t8f2HVXtUz3PcollswiSYSvLXY5RaWkAb6nngKefDJ8LVEmA70nIqUyv22/PfDjH4fLqCsmpVKlOSMqBlTeIbfV4cODbGD6fdYnUdnMXq5nQh+cpWCJrmiptabQQh4AjjlGVaA+BZxG0RcsCAYXfVr4aaeFs76YFUXC0TSTJPUjj3LzswmPLbcMP4jbbpteA9enjq+8cuMyQDUDY8YAv/ylWo5r1ydzTZL7f1eMHGq/+5361uuivd0v6PVnkUwRukmCvvfYI9iub99KF9rTTwdGjowuY5HQ77OuLNnq1SXk9XkNpGA1qj0VWsgffrjSYF59NRyyd4st1LceitYn5D/7LJg09dlnwSDYgw+qb5p+bgr5qIFcM5yAzc3KlbGH2Hzz8DRsIdILeT1nLh0rb0L+a1/z/5/GpZIaMmXvckHjK0nuP6V9jENHRxDqoqMjCFFsw3xudtkliL3v2g6oHL+p5nlqZnwBDPVnXo9Sqd+Hvn1V5jVX+9B7UlRPlMGs3hRayG+wQaC161AXTR/I9MWruPLK4I2+887Kxg2okAi//32Qncfs2tqCSumYU+Jt5hhdKNkElCtQWhYNc+WV89ddN6/bbIRRiSdsg6Zx3TDJvOO69zbvqDgJ2PWMZ5TNLMpcoz9LUgK77WafrW1uF3WsomALsU2Y4b4J/d4tX65cah991H4MXeFbuFB5+rGQrzF6WFzblOMoezpp3bNnB5X95ZfBLDmgMo5OVDRASo4MqC6drZHpD5ZNyLsSlGShge+4ozIH5REaMzHvQ1Q+Wtv8irgN0/XCJczBUyBwu6VBd5uyQU4DejniCnlXbyzJIGujgpLVEhqbsKG/1HVzjR7CAlDt25WIRr+vU6aoHkEc01wt6DZCfuzYYNkm5KMmshx5pPpebbVgHWluRNTgpok+PdqmQQLRQr5UUuMO5j55M7NkBYVuIA8S8z6Yk6VMbDNL42rypChEZSWzQcLdFlqDxgZIyF94YfScDBLyurtv797BeupBmKYZc51+rO6CHoJAD/9tetT17OluZzbF66WX2CZfU0gbKpUCcw0xcaJbk6eGRa5TuvlipZXC3bKkQt48TxpNvkePSpPUqFEqy1RSfGFz84I+kGhDN49MmFD5v01DjqvJ0zPkMgV0dobnRdx0U7BMKed80PPhy0ZFLyl6xjs7g/1OPz14nsj7wybkTbqbkJ83L/zbZVJra7M/G6aHkg6ba2oITYzq7KzUtD75xK3Jm3Z1U6uLG8diyhR/Kj+Xthgl5HfaqXLd4MHKO+S44+KVjcib/T0OZnKMQYPUy7lUCsZWAH+89zvvDP+2mXSA4BlyJfNYujQcZE639/pMIpTEfdGi6LEWst/bJnDpg6o2jyHXsc0B+aJAOSGievGuEONtbZUzYgHlVRc3AFw96DZCXueAA8KmEiHc2pHpV6wLY3MghmYd0sQjPZ74J5/4o1x2dERr8jaNytUwhbDHtdlmG3cZioB5P8weWq9e6oV/wglh11PqxcTpTrsSblD9+GKJP/lk8PvVV4Nln5AnRaN/fxUkzzXYBwRCnsaKRowIrsn0nJkwAdh663D5bBTVhZJ6wL/+tX87l5BvbQ0CEuqhQ5rNXNrthPwBB6jK0W3rLS1KS7JBSTnoQde783qjOOusoPtPg3t6tLuoSo/S5DfdNJsBsG9+s/pjNDM771y57ic/CZalVIG4Vl89XCd0n0eMCMcS0p8TQNUpzX/QzS1AUD8u80ZLC/DEE2r5nXeAW28NbPE+bfLmm5V3zKefAt/7Xji3q8lPf6q2JS31298OrnPjjcMD6f37R8c1AsLPcZGwZdAyTTWAPSQKECR3AYK6X7aMhXzDGT5cRaPUhUGcgEMLFvi3ffjhoGJtSQqi4se4bPL08IwcWSkIyAS1ySaBn7/NfKNTBLu7D1ticn2s5OtfVwLe5s7Wq5e6j/o9NGekXnihMoUMHFgZV5yEu2vgVYgg0iN5XlEoCf0Fbhsc7tFDDfxFCQ8hgnC8QqgXHO0zcCCwxhrBthtsoF4IuleYLdmOKx9s3imVgolmxHrrVc618KXhNIV83752IU/H5IHXOvD22+rh1rP4uOKK2MwrusatV9iMGcHydtupEAW33mrf1oZLk6ep1r/4RaUmTz2GLbYATj5ZLdOL5IUX1LcZG6WIdncTlwdNS0tgi7a9cM38wUDlPafYOIceWvlCoW3JldI069he9LSPPrHJ1mNrbVXjP7bn6H//N1jWj79wobpm1/yLPn3UIKHublltwuw80dKiXoimUKdJidS+9HhIegyoe+8NFAW9zmxCvq3N75tfS7qdkLd5McSNmy6EW8jrv/fZR3Vxp00L/ps9u3J73T571132dG66pmE2Vr0bPXQosO++wUNHXhZ5zMlZLQcfbF9vzgK1zQA1MRUAii9ky4qlC0sgcLslbGEFZs1S3/oAvt7zIKHSo4fy8rA9q7rNXBfy66yjngfbNR52WHAtJKC6gwKgI4Qya9lckIFgTEvvvQ8dGs65QPJAv8e33FLZS7zggsZ5KXU7Ia9z4YXJtl+2LKjUkSPtA5vEppuG/7/xxkpTj2kTtM2Q1Rutaa7Ru9H9+6sBpGayBTYTvXqFI5GSuUYPbWHDnOxCdWCm4wNUI/7+9+PNNnZp9EA4TeMhh6jv1193T6ah3h4dV3+xu15k+iS6H/9YDUR3R4XAx/e/r771F/BJJ4XHteg/8x6bPfO2tmiTba3odkJeD+fri18BVApMyr0JAN/5TqUbmp4e7oc/DE+hP/ZY/0vBBT08nZ3hJOG2GCRSBhrE7bcnP1dRkRJ4993opB628QpK/UfftlnM1KNqaVHeLULYQzvbNHlCf4Hrzx0NBJoDwDprrhlEI122LBxkbO21oz2qWlsrw0x3Z6gNXXqpmvCom9123lkl8ybZQT70envcfPNKIU//s02+DugP86xZKpDQBhsE63TbqE/In3569ExIveLXXDN8vI8+Cs+u7NkzCJymQ3ZBsyykZejnkjLYbuHCYgaWSsPIkaqe9ZAGNjOG7lJJkJZMSdltE2Nuvll9t7QEqfpsvvQ+If/QQ8E40aGHBusp2cg666i5DzZKpcB10nwJ9e8frcwAwaxaJvCS69FD9W5sL1gz94P+LG26qXoOxo8P/9+o9tjthLxOe7tqULp3ge67bBPyc+eq5X79wlljotDdrQClNeq/x4xR59P9lgHVzTv22MqyuNz3SAs58US1j22w591345c7j5hugfp8BcI1IGlCfvYTJ6pv26xmarylUhAEzKaxTZwYTJk3G/zSperFsOWWYaWDaG1190Ta24Gf/1wtm6kfmeToPW5XXZ50kvqmHpQZSLCjI3B+0I+TNHVgFlQl5IUQ3xNCzBZCdAkhIsIzNR9Ll6qRcwpmtdNO4ZggZuUKEbbrmqGBfZnkW1vDFXzjjYFbJqB8cbu6Kt0vN9oIOP748CCuDdNcQ9jc+eL4RueZqMktgPKkGTw4XrYnmvHZu3fY/g2Ew0WTJt+zZ/CcuOzoppAfNkyZVVz17AuF3dYWePoMHOjezkVUYLXuht6Tikr0Qb1DIYIBf2rrenjzlhZleotKBl8LqtXkZwHYH0DMzIfNxXvvAfffr5aPOELZ0mxujy4XNVOgzpwZziur09oattmbvQAS0MceG17fr58yMVHMehemucYsKxOGus9x7hHNYL3++sr/dA8a0uRXWkmN2QBhDyod87z776/W6RphVKYwYrPNgmB5aSbMmaa/7s6SJcFyVHjg669XA9ctLYHrbqkUDM7q7dEW6rkeVCXkpZRzpZSWOWL54L33lA1zjz3UbMB+/cLxZaRULlP6pBc9cbat8l0eO6VS0OXXj69D9lwdmhFJYwkuresb32CNLC1RE8ioYdps9mQmoe3MZ+KBB+KVwWY60r044gqH7hZMrBZsvnmw3LMnMG6cf/uNNw7fd/1Fqz8PhfeuEUIcIYSYLoSY/iEFfGgwlJXnww+Vpt2nTzjg0AMPqMrTA1ndckuwrIckJdutbcYlUGmTB8KZo0iTNzUx8uCh6IqrrqoePDP5Rf/+ledml7h46L03G74gdGSWOfFEewOmjGImUYGqttvOPZ3eBwv56tl222D53HMrk3eb9OwZ7nXpnlK6ibZphbwQ4kEhxCzLx5Jn3o2UcoKUcrSUcvSgJptWN2OGanSm3XPqVNVVd1WM/kKwXZKeUOT11/2DLiTkXY2UEha0t6vehyvRNgn67barzNfJ2HG9mE1o0N3H178eLPsC0k2dGv5tPmOLF4dfBDvuGCzTpCVbSFs20WVLqWTPMaAzcGA4/MWbbwaD57qJdtGixryEI08ppdxFSrmx5XNn1L55oqurMiuPPjpuQ7fd2dwp9UHcv/7Vrb3RhBddyJuxzulh6ejw+9ufcor6NmOuMNUzaZL7P8oF+qMfBet8HVYzB4Dp5njDDSqYHqEnldHdOPXeGgv47KEJbj7MCLa77RaM4+iDr48/3qSafJHRPWVIwF52WXidD92zIso16rjjlIvc008Df/lL+L9dd1XapG6T1229OnlNx9esJGl0vkFN8qPXobo0zT1dXZXxUkw/9c03d5eNnrVly8KZi6Jm7zK1YcGC8PjaEUcESVtMGdKIcbNqXSi/I4R4G8AYAFOEEPdnU6z6oLswLl6sPFt83jMmAwaoKegvvFDZaE2GDFEZm267LTx4CyhN/rDDgheNrZtPU93NOBtM/fAJeZt/OvW4xo8Pu17qEUejcgv7WLGCtfd6EBX+ZNQoNcPdhi5DGuUcUa13ze1SyrWklD2llKtLKXeP3qs5mTRJCVfdZkazCH1QaFc9y48LV8YgYskS1fhtPtG77aa+i5qlp1Fsskn0NhSP3jXj1AXNeDz5ZCXMafC8qyto/EmzdwH2yV1AeMCQyY6odiuEOx+ALuR32IHNNXVH945pb1fmF70SyM6qo0cf/Pjj8IvA59c8ZYoaoFmxwh2furU1bG//7W+D5Wo0PsYNjYf4oNwDuo08Dm+9pZ6n9nZVr5RcXNfk9YiGNkwvKiB4FnRzIZDOG4epLX/7m/oWQgW1syW1qTXdWshTGN9Jk9QAlpSVk5RIO6IgT3pUwvPOC8coMf3edWE+bpzq9s2f7571dsEF4aBnuv+2LdY5Ux9sMcPj7qebZUiB0NdHvThs51x//XC5mNri0r6vuCL8O8qU2toanU+2FnRrIU+TW/bbT8WMWbYsbH/bbrtgBqsZchao1MhNIW9OgX/ooSD9WxzGjg2WG/FwMAqq16RCXn8eXnstLOR1AW3LJEboAoZiLFG8FA4rXR+ktM+lMIW/b1yukXXVrYU80aNHMMtNd3tcsCAISOUK/EQVvd128SrS1L4a0X1j0pFGkydaWoLe2PLl4Wfl8ZhBQczsX59/nqw8TDpmzlS+7yakuetzI1x0dDROUWMhD9V49ZjR5Pc6bVow4OmCGtyoUYFvrA99lisQ1taZ5oQEctKJLIcdFsy9aGsLJsy98kp8U4vuo029Sp7VWnv08TAXNDfGF+ufYCHfQGyeLDQVPc40ZPqf7KQ6NJlK19r0SVP338++zXkgrblm3XUDd1h9344Ou/nPhj6YT8J9r738EU+ZbFl5Zb8c8EUIJVjINxCatBC1zgVV/oYbAttvb9/GFfskqpdgMnRosu2ZbKDwFWlt8v37h1/0AwYAjz2WvBx63HpKaMHUBt21VTfhmoweXTl72cbbb3PSkIah33iyv9OMwiS5OkeNAg46yL6NaaIB4vngm/z4x8n3YaqHohCmtcmbk9sGDEjnGaObaU46KTp6JpMeXaHSo1Ka6AmHfNxzT3Sgs1rR7YW8DsWZmDZNDYa5YsPrLFumvocOrdyefKBtM1gPPDB5+Ww+00ztofyu8xIG1T7+eOD88yvNfroLZRwoW5gu5Pfay56lismeU0+1K2qAPwidztixasZrI2DHPA0aBL3rLpUijzK9+JgxQ01ysSWgIKFsexDijMib8BT2xtCrV/zGrNPVpTxievQIC+ixY91Cwwal/WtpCfLAUoISpvacfXZl8EKCwpX7aGtT818a5Q3FmrzBxhsDs2cHCZSj8IUzIKH8179W/scNND/QLOSkmvMJJyiTSmdneNBt9myVaD0pLS3AGmsEy2agO6Y29O2rwjvr4Z6B+MECDzlE7c9Cvkm47rpkjdmseBtmLliAhXye+Owz9b3WWsn269dPxfS3JYMBooPambS0BKajlhb7c8Vkz9Ch6mMGIXNp9ybt7cqu36g0GizkDYYPDwL+x8EX252SMttizbOQzw/jxgFHHRWO4x6Hjo5AENiCh513XrLjtbQAzz+vlkuleGNGTPVMnmyfm2DmAHDR0aFkSlIlIStYyFvQp59H4ZuY8vvfh7NH6bCQzw/HHqsiP8b1pCDuu0+94FdeORzjiPjBD5Idr6UF2HffZPsw2fDJJ5Xrrrsu3r42Ja+esJA36NMH+HY5sWEcG1rv3u7/SiXlc7/FFuo3hUa49dbGVzyTjE03TS7k77hD2d9PPDGcDJ5IOpAuRPJImEw23HUX8Oyz4XW++nvnnWC50QodC3mDHj0CH/Y4M9RseTaJzk7lRfGrX6nfJ56ovkeMaHzFM7Vn0CDlG33WWfb/04QnaJQbXndmhx3Uty30uAsKIgc0vq2zkLdw0UXqu1pzTamkegNDhgBXXaXc6fr3V+uj0gUyxWDffd2KALvE5gPK1Zu2993oXjsLeQuUCcYVjoBYYw3/LMgf/SiwydMg2SuvqB5CoyueqQ+rr+426bGQzwe77aaCkEXJAxesyTchFKDs0Uf927W0+IV8nz7BjFhi1VWVkGdNvnuw6qrxopMyzcvFF6vvtIoZC/kmZNQo9R1VOe++6xfyTz0F3H135Xo213QfRo4M+0frmb+YfNDSoj5phXyj2zoLeQtz5qjvOH7RPo+Lfv1Ucm4TNtd0L/TAcr/8ZePKwaSnmt43a/JNzKuv+v8/8UT/rMUf/ECFIjVpbU0e7IopDmPGNLoETFKqEfKN9ohiIe8hyiYfxXe/a6/gUgn485+rOzaTT7bfHnjvvUaXgknKW2+lF/J6bPpGwEK+hrS3AzfdVLmek3J3L3Qvmr335vR9eSWtd40rP3S94MethnR1BSPzOm1t9S8L0zjMwXfO6JRP0gr5RrvKspC30K9fdsexDd7GyQnJFIeXXw7/5jSO+YSFfIEwfdtdRMUyGTjQvp7NNd2bRjd6Jh2NdoVMCwt5CxRrJorTTou33c03h39zI+9emM8T138+SSrkmyVdJwt5C7vumt2xhgypjF7HdC/M5BI8RyKfJDXXxFUCaw0LeQtZwGtnrgAAB8dJREFUJkjeYAPlfsUwRF67/d2dtDb5RsNC3sLGGwO//W12x/roo2yOxRSDAQOCXK1MfmAhXyD69rW7PqZh3LhsjsPkFzPtW2trOKkEkw/y2gOrSsgLIf4ohHhZCPGiEOJ2IUT/rArGMEXh2GPDvy+6iAdf88bYsd1UyAOYCmBjKeXXAcwHcHL1RWKY4sNCPl8MGND4QGNpqcpjW0r5gPbzaQCcgTImWdn8GYapPeedB2y1VaNLkY4sbfKHAbjX9acQ4gghxHQhxPQPKZ9WN4Y1OYbJD668ESecUN9ypCFSyAshHhRCzLJ8vq1tcyqADgA3uI4jpZwgpRwtpRw9SM+iUHBsAcoAYOrU+paDYZj0lEr2+Q15UNYizTVSyl18/wshDgWwN4CdpZQyo3I1BVlEC9x+e/t6SjHIMEzz09am0nnmkaps8kKIPQCcBOBbUsrPsylS8zB3bvXH6NGj+mMwDNNYVlsNOPLI5Ps1QzC6anXVywGsBGCqEOIFIcSVGZSpacgiJGyjY0kzDFM7oiLKHnhgfcrho1rvmpFZFaSouAZshgypbzkYhsmes89udAmi4RmvDaIZ3vAMw1RHHgZeWcgzDMPUiL59G10CFvIMwzA14/TTG10CFvINY9ttG10ChmFqTTOYc1jIN4j99mt0CZhGceONjS4B051gIV8Hdtyx0SVgmomDDmp0CZjuBAv5OvDQQ40uAcMw3RUW8nWgGexyDMN0T1jIMwzDFBgW8gzDMAWGhTzDMEyBYSHPMAxTYFjIMwzDFBgW8gzDMAWGhTzDMEyBYSHPMAxTYEQj0rIKIT4E8EbK3QcCWJxhcRoJX0vzUqTr4WtpTtJcy9pSykFJdmiIkK8GIcR0KeXoRpcjC/hampciXQ9fS3NSr2thcw3DMEyBYSHPMAxTYPIo5Cc0ugAZwtfSvBTpevhampO6XEvubPIMwzBMfPKoyTMMwzAxYSHPMAxTYHIl5IUQewgh5gkhFgohftfo8gCAEGKoEOIRIcQcIcRsIcRx5fWrCiGmCiEWlL8HlNcLIcT48jW8KITYQjvWT8rbLxBC/ERbv6UQ4qXyPuOFqG0aEiFESQjxvBDi7vLv4UKIaeXz/1MI0VZe37P8e2H5/2HaMU4ur58nhNhdW1/XOhRC9BdC3CKEeFkIMVcIMSavdSOE+HX5GZslhJgkhOiVl7oRQlwthPhACDFLW1fzenCdowbX8sfyM/aiEOJ2IUR/7b9E9ztNnXqRUubiA6AE4BUA6wBoAzATwKgmKNeaALYoL68EYD6AUQAuAvC78vrfAbiwvDwWwL0ABICtAUwrr18VwKvl7wHl5QHl/54pbyvK++5Z42v6DYAbAdxd/j0ZwIHl5SsBHFVe/iWAK8vLBwL4Z3l5VLl+egIYXq63UiPqEMC1AH5WXm4D0D+PdQNgCIDXAPTW6uTQvNQNgO0BbAFglrau5vXgOkcNrmU3AK3l5Qu1a0l8v5PWaWR5a9nAMn7IxwC4X/t9MoCTG10uSznvBLArgHkA1iyvWxPAvPLyVQAO0rafV/7/IABXaeuvKq9bE8DL2vrQdjUo/1oAHgKwE4C7y41msfYA/7ceANwPYEx5ubW8nTDrhrardx0CWAVKMApjfe7qBkrIvwUl4FrLdbN7nuoGwDCEBWPN68F1jqyvxfjvOwBusN3HqPudpr1FlTVP5hp6yIm3y+uahnL3aXMA0wCsLqVcVP7rPQCrl5dd1+Fb/7Zlfa24FMBJALrKv1cDsERK2WE5/3/LXP7/0/L2Sa+xVgwH8CGAa4QyP00UQvRFDutGSvkOgIsBvAlgEdS9noH81g1Qn3pwnaOWHAbVmwCSX0ua9uYlT0K+qRFC9ANwK4DjpZRL9f+kevU2va+qEGJvAB9IKWc0uiwZ0QrVrf6LlHJzAMuhuuz/JUd1MwDAt6FeXIMB9AWwR0MLlSH1qId6nEMIcSqADgA31PI8SciTkH8HwFDt91rldQ1HCNEDSsDfIKW8rbz6fSHEmuX/1wTwQXm96zp869eyrK8F2wDYVwjxOoCboEw24wD0F0K0Ws7/3zKX/18FwEdIfo214m0Ab0spp5V/3wIl9PNYN7sAeE1K+aGUsh3AbVD1lde6AepTD65zZI4Q4lAAewP4YfmFgogy29Z/hOR16qcW9sNafKC0slehNBkaqNioCcolAPwDwKXG+j8iPOBzUXl5L4QHlZ4pr18Vyn48oPx5DcCq5f/MQaWxdbiuHRAMvN6M8EDQL8vLRyM8EDS5vLwRwoNNr0INNNW9DgE8AWD98vKZ5XrJXd0A+AaA2QD6lM91LYBf5aluUGmTr3k9uM5Rg2vZA8AcAIOM7RLf76R1GlnWWjawGjzoY6G8V14BcGqjy1Mu07ZQXcAXAbxQ/oyFspU9BGABgAe1h1EA+HP5Gl4CMFo71mEAFpY/P9XWjwYwq7zP5Ygx2JLBde2AQMivU25EC8sPYM/y+l7l3wvL/6+j7X9qubzzoHmc1LsOAWwGYHq5fu4oC4dc1g2AswC8XD7fdWXBkYu6ATAJaiyhHaqHdXg96sF1jhpcy0IoeznJgCvT3u80der7cFgDhmGYApMnmzzDMAyTEBbyDMMwBYaFPMMwTIFhIc8wDFNgWMgzDMMUGBbyDMMwBYaFPMMwTIH5/3PLyMHm1HK9AAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qm1WvQ4V3VfO",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "ce7590bf-c579-4a2e-942c-7a8312a1e3ec"
      },
      "source": [
        "temp = float_data[:, 1] \n",
        "# Chart actual Test data \n",
        "# 420551 - 300k = 120551 samples\n",
        "# 120551 - 119040 preds = 1511 ... this is the starting point of the predictions on the test scale 300k-420551\n",
        "\n",
        "UlimReal = 420551\n",
        "#UlimReal = 311511\n",
        "LlimReal = 301511\n",
        "SampleSizeReal = UlimReal - LlimReal\n",
        "plt.plot(range(SampleSizeReal), temp[LlimReal:UlimReal], 'r', linewidth=0.27)"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7ff4ec1d0b70>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "95RpEMs66xOy",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "980d585c-d690-4528-a12b-e00289db2cf1"
      },
      "source": [
        "# Superimposed: model prediction (blue) vs reality (red)\n",
        "\n",
        "# Chart Test\n",
        "UlimReal = 420551\n",
        "#UlimReal = 311511\n",
        "LlimReal = 301511\n",
        "SampleSizeReal = UlimReal - LlimReal\n",
        "plt.plot(range(SampleSizeReal), temp[LlimReal:UlimReal], 'r', linewidth=0.27)\n",
        "\n",
        "# Chart Predicted \n",
        "UlimPred = lenPreds\n",
        "#UlimPred = 10000\n",
        "LlimPred = 0\n",
        "SampleSizePred = UlimPred - LlimPred\n",
        "plt.plot(range(SampleSizePred), predTemp[LlimPred:UlimPred], 'b', linewidth=0.27)"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7ff4ec143470>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qhNks5y5745h",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}